트랜잭션 경계 열기
이 시점부터 실행되는 여러 SQL이 같은 트랜잭션에 묶입니다. 작업의 시작점이 여기서 정해집니다.
TCL은 데이터를 직접 바꾸는 언어라기보다, 여러 SQL 변경을 하나의 작업 단위로 묶어 어느 범위까지 인정할지 정하는 제어 언어입니다.
이 시점부터 실행되는 여러 SQL이 같은 트랜잭션에 묶입니다. 작업의 시작점이 여기서 정해집니다.
복잡한 작업 도중 기준점을 찍어 두면, 오류가 나도 전체가 아니라 저장점 이후만 되돌릴 수 있습니다.
INSERT, UPDATE, DELETE 같은 SQL이 따로 실행돼도, 트랜잭션 안에 있으면 마지막 결정 전까지는 아직 최종 반영된 상태가 아닙니다.
중간 저장점은 "여기까지는 괜찮다"는 복구 기준입니다. 이후 단계만 취소할 수 있게 범위를 잘라 줍니다.
트랜잭션 안의 작업 전체를 확정해 다른 세션에서도 같은 결과를 보게 합니다.
오류가 나면 전체를 되돌리거나, 저장점이 있으면 그 지점까지만 복구할 수 있습니다.
TCL의 초점은 "무슨 데이터를 바꾸나"가 아니라 "변경을 어디까지 인정할까"입니다. 그래서 시작점, 저장점, 종료 방식을 함께 봐야 트랜잭션 제어가 이해됩니다.