데이터베이스 - savepoint

savepoint


트랜잭션 제어 명령에는 이 외에도 2가지 명령어가 더 존재한다. 이를 살펴보자.

우리가 rollback을 시킬 때 그 시점은 트랜잭션이 실행되기 이전 시점이다. 따라서 중간 지점으로 rollback을 하고 싶을 경우가 생긴다. 이를 위해서 사용하는 것이 savepoint이다.


이를 연습하기 위해서 테이블을 하나 생성해보자.

이 테이블에 insert 명령과 delete 명령을 차례 대로 수행해보자.


그리고 이 상태를 a라는 savepoint로 저장한다.


다음 다시 insert와 update 명령을 수행한다.


select를 호출해서 그 상태를 확인하고 이를 savepoint b에 저장한다.


다시 테이블을 수정하고 select하여 내용을 살핀다.


자, 이제 b라는 savepoint로 한번 rollback하겠다.

그 결과 다음처럼 우리가 마지막으로 update해준 명령이 실행되기 이전으로 돌아간다.

다음은 a라는 savepoint로 돌아가보자.

확인해보면 해당 시점으로 되돌아감을 볼 수 있다.

마지막으로 rollback명령을 수행하면 트랜잭션이 실행되기 이전 상태로 돌아가는 것을 확인할 수 있다.


댓글

이 블로그의 인기 게시물

데이터베이스 PL/SQL - 배열과 테이블

데이터베이스 PL/SQL 제어문 - 반복문

데이터베이스 PL/SQL 변수선언