글

라벨이 savapoint인 게시물 표시

데이터베이스 - savepoint

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