1
특성 설정
이번 작업에 적용할 격리 수준이나 읽기 특성을 먼저 결정합니다.
SET TRANSACTION ISOLATION LEVEL ...
아직 변경 시작 전
데이터는 바뀌지 않았고, 트랜잭션의 규칙만 정해 둔 상태입니다.
`SET TRANSACTION`은 규칙을 정하고, `SAVEPOINT`는 진행 중 되돌릴 기준점을 남기며, `COMMIT`·`ROLLBACK`은 마지막에 전체 결과를 확정하거나 취소합니다.
저장점 이후만 되돌린 뒤 계속 진행할 수 있지만, `COMMIT` 또는 `ROLLBACK`이 실행되면 그 트랜잭션은 종료됩니다.
이번 작업에 적용할 격리 수준이나 읽기 특성을 먼저 결정합니다.
SET TRANSACTION ISOLATION LEVEL ...
데이터는 바뀌지 않았고, 트랜잭션의 규칙만 정해 둔 상태입니다.
이 시점부터 여러 SQL 변경이 하나의 원자적 작업 단위로 묶입니다.
START TRANSACTION BEGIN BEGIN TRANSACTION
이후 실행되는 변경들은 마지막 결정 전까지 하나의 묶음으로 취급됩니다.
작업 도중 기준점을 남겨 두면 전체를 버리지 않고 일부만 되돌릴 수 있습니다.
SAVEPOINT sp1 ... ROLLBACK TO sp1
마지막에는 지금까지의 전체 변경을 확정할지, 처음부터 취소할지를 결정합니다.
변경 내용을 확정하고 잠금을 해제합니다.
트랜잭션 전체 변경을 취소하고 잠금을 해제합니다.
`SAVEPOINT`와 달리, 종료 명령이 실행되면 같은 트랜잭션을 더 이어서 사용할 수 없습니다.
중간에 되돌릴 필요가 있으면 `SAVEPOINT`를 찍고 `ROLLBACK TO`로 그 지점까지만 복구합니다. 전체 결과를 확정하거나 취소하는 결정은 마지막 `COMMIT` 또는 `ROLLBACK`에서 한 번만 일어납니다.