TCL (Transaction Control Language)
-> 트랜잭션 제어 언어
-> COMMIT, ROLLBACK 2가지 존재
트랜잭션
-> 한꺼번에 수행되어야 할 최소의 작업 단위
- 논리적 작업 단위
-> 하나의 트랜잭션으로 이루어진 작업들은 반드시 한번에 완료가 되어야 하며, 그렇지 않은 경우에는 한 번에 취소가 된다.
트랜잭션 SQL
COMMIT : 트랜잭션 작업이 정상 완료되면 변경 내용을 영구히 저장 (모든 savepoint 삭제)
SAVEPOINT <savepoint명> : 현재 트랜잭션 작업 지점에 이름을 지정
ROLLBACK : 트랜잭션 작업을 모두 취소하고 최근 commit 지점으로 이동
ROLLBACK TO <savepoint명> : 트랜잭션 작업을 취소하고 savepoint 지점으로 이동
-> SAVEPOINT 세이브포인트명
ex) SAVEPOINT SP1;
-> SAVEPOINT는 COMMIT 하는 시점에 사라진다.
SAVEPOINT 지점 롤백 방법
기본적인 롤백 : ROLLBACK (마지막 COMMIT 지점으로 이동)
SAVEPOINT 롤백 : ROLLBACK TO 세이브포인트명 (해당 세이브 포인트 지점으로 이동)
ex) ROLLBACK TO SP1;