반응형
SAVE TRANSACTION
- 트랜잭션 내에서 사용 가능
- 특정 구간에 세이브 포인트 생성
- 전부 롤백이 아닌 지정한 구간으로 롤백 할 수 있게 하는 기능
구문
- SAVE 세이브포인트명
- 세이브포인트명으로 해당 구간 롤백
사용 예시
1. 세이브포인트를 두개 지정해보고,
2. 첫번째 세이브 포인트로 롤백하고,
3. 커밋해보기
-- table info : id(1), name('puppy'), age(4)
select * from MyPet where id = '1'
-- age = 4
BEGIN TRAN
update MyPet set age = '1' where id = '1'
-- create savePoint1
SAVE TRAN savePoint1 -- 1
select * from MyPet where id = '1'
-- age = 1 / savePoint1 age = 1
update MyPet set age = '2' where id = '1'
-- create savePoint2
SAVE TRAN savePoint2 -- 2
select * from MyPet where id = '1'
-- age = 2 / savePoint2 age = 2
ROLLBACK TRAN savePoint1
select * from MyPet where id = '1'
-- age = 1 / call savePoint1 age = 1
COMMIT TRAN
select * from MyPet where id = '1'
-- commit, age = 1
반응형