Database / Sql

[Oracle] SAVEPOINT & TRANSACTION

락샤리쫑 2011. 9. 2. 11:12

* SAVEPOINT

트랜잭션을 작은 섹션으로 나누는 SAVEPOINT 문을 사용하여 현재 트랜잭션에서 표시자를 생성할 수 있습니다.

그런 다음 ROLLBACK TO SAVEPOINT 문을 사용하여 해당 표시자에 보류 중인 변경 사항을 폐기할 수 있습니다.

이전의 저장점과 동일한 이름으로 두번째 저장점을 만들면 이전의 저장점이 삭제됩니다. 

 UPDATE...
 SAVEPOINT UPDATE_DONE;
 INSERT...
 ROLLBACK TO UPDATE_DONE;


* SET TRANSACTION READ ONLY - 읽기 일관성

이 구문을 실행하면 9시에 실행했다면, 9시 시점에서 커밋된 내용만 보여준다.

중간에 UPDATE 등 데이터 수정이 있어도 9시 시점의 데이터를 보여준다. 

명령 실행 후 READ 만 가능하다. 수정/삭제작업은 불가하다.

작업 해제는 ROLLBACK을 이용하면 된다.