트랜잭션상태
。트랜잭션은 실행되는 동안 여러 상태를 거치며 진행
활성( Active )
。트랜잭션이 시작되어 수행중인 상태
▶메모리내캐시용도의Buffer내에서 저장되며 아직보조기억장치상DBMS에 반영되지 않음.
부분 완료( Partially Committed )
。트랜잭션이 모든SQL문을 실행했지만 아직COMMIT되지 않은 상태
▶ 오류 발생 시실패 상태로 전환 될 수 있음
완료( Committed )
。트랜잭션이 성공적으로 완료되어데이터가영구적으로 반영된 상태
▶Buffer내변경사항을보조기억장치에 반영
。MySQL등의DBMS에서는SQL 실행시트랜잭션으로서 자동으로Auto Commit이 반영
▶ 원래라면 일일이COMMIT을 입력해서커밋해야함
실패( Failed )
。오류로 인해트랜잭션이 정상적으로 완료되지 못한 상태
철회( Aborted )
。트랜잭션이 실패하여ROLLBACK이 수행되어트랜잭션이전 상태로 복구된 상태
Data Grip에서Transaction Mode해제
。MySQL과 같은DBMS는Auto Commit이 설정되어 매SQL을 실행할때마다 자동으로Commit이 되는 특징이 존재
▶ 해당 기능을 종료할 수 있다.
。Transaction Mode - Manual설정
。이후TRANSACTION작성 시COMMIT을 수행하지 않는 경우DB에 반영되지 않음.START TRANSACTION; // 트랜잭션 상태 : 실행 UPDATE account set balance = balance - 300000 where account_id = 1; // 트랜잭션 상태 : 부분완료 SELECT * FROM account; // COMMIT; // 트랜잭션 상태 : 완료 ROLLBACK; // 트랜잭션 상태 : 중단▶
COMMIT과ROLLBACK은 관례적으로 함께 작성