트랜잭션 내부 체크포인트

SAVEPOINT는 중간까지는 남기고, 그 뒤만 되돌리는 기준점입니다.

ROLLBACK TO sp1sp1 이후 변경만 취소합니다. 그래서 더 뒤에 만든 sp2도 함께 사라지지만, 트랜잭션 자체는 계속 열린 상태로 남습니다.

하나의 트랜잭션 기록을 공유하고, 뒤 구간만 잘라냅니다.
공유 전제: SAVEPOINT는 COMMIT 전까지만 의미가 있습니다.
실행 중
보존 구간
기존 변경
sp1 이전에 이미 수행된 작업
기준점
SAVEPOINT sp1
이 지점부터 선택적 되돌림 가능
후속 작업
작업 A
sp1 뒤에 추가된 변경
더 늦은 기준점
SAVEPOINT sp2 + 작업 B
sp1보다 뒤에 있으므로 함께 제거
ROLLBACK TO sp1 후
유지
기존 변경 유지
sp1 이전 상태는 그대로 남음
유지
sp1 위치 유지
같은 트랜잭션 안에서 계속 작업 가능
취소
작업 A 제거
sp1 뒤 변경은 되돌려짐
삭제
sp2와 작업 B 제거
더 나중 SAVEPOINT도 함께 사라짐

핵심 결과: SAVEPOINT는 부분 롤백을 가능하게 하지만 트랜잭션 종료를 의미하지는 않습니다.

마지막에는 COMMIT 또는 전체 ROLLBACK