본문 바로가기
Database

[오라클] 되돌리기

by 서피 2021. 3. 11.

1. 특정 시점으로 되돌리기 - ROLLBACK *

ROLLBACK {이름} 을 통해 특정 시점으로 데이터베이스의 상태를 되돌릴 수 있다.

이 때 되돌릴 목표 시점은 SAVEPOINT {이름} 을 통해 설정할 수 있다.

insert into usertransaction values (1, 'test1', 'pass01');
insert into usertransaction values (2, 'test2', 'pass02');
insert into usertransaction values (3, 'test3', 'pass03');
insert into usertransaction values (4, 'test4', 'pass04');
savepoint sp1; -- 임시저장 위치 설정
insert into usertransaction values (5, 'test5', 'pass05'); -- test5 사용자 추가

rollback to sp1; -- test5 사용자 추가 전으로 롤백
select * from usertransaction;

실행결과

savepoint sp1; 이후에 추가한 test5 사용자가 사라진 모습

 

 

 

 

2. 커밋하지 않은(최종 저장하지 않은) 모든 내용 되돌리기 - ROLLBACK

insert into usertransaction values (1, 'test1', 'pass01');
insert into usertransaction values (2, 'test2', 'pass02');
insert into usertransaction values (3, 'test3', 'pass03');
insert into usertransaction values (4, 'test4', 'pass04');
savepoint sp1; -- 임시저장 위치 설정
insert into usertransaction values (5, 'test5', 'pass05'); -- test5 사용자 추가

rollback;
select * from usertransaction;

앞서 1번에서 실행한 코드에 rollback; 만 추가한 코드이다.

 

실행결과

아무것도 없다.

commit; 을 해주지 않았기 때문에 모든 내용이 사라진다.

 

댓글