고은별의 기술 공유 연구소
article thumbnail
320x100
반응형

 

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

320x100
반응형
profile

고은별의 기술 공유 연구소

@luvris2

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!