데이터베이스 - savepoint
savepoint
트랜잭션 제어 명령에는 이 외에도 2가지 명령어가 더 존재한다. 이를 살펴보자.
우리가 rollback을 시킬 때 그 시점은 트랜잭션이 실행되기 이전 시점이다. 따라서 중간 지점으로 rollback을 하고 싶을 경우가 생긴다. 이를 위해서 사용하는 것이 savepoint이다.
이를 연습하기 위해서 테이블을 하나 생성해보자.
이 테이블에 insert 명령과 delete 명령을 차례 대로 수행해보자.
그리고 이 상태를 a라는 savepoint로 저장한다.
다음 다시 insert와 update 명령을 수행한다.
select를 호출해서 그 상태를 확인하고 이를 savepoint b에 저장한다.
다시 테이블을 수정하고 select하여 내용을 살핀다.
자, 이제 b라는 savepoint로 한번 rollback하겠다.
그 결과 다음처럼 우리가 마지막으로 update해준 명령이 실행되기 이전으로 돌아간다.
다음은 a라는 savepoint로 돌아가보자.
확인해보면 해당 시점으로 되돌아감을 볼 수 있다.
마지막으로 rollback명령을 수행하면 트랜잭션이 실행되기 이전 상태로 돌아가는 것을 확인할 수 있다.
댓글
댓글 쓰기