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; 을 해주지 않았기 때문에 모든 내용이 사라진다.
'Database' 카테고리의 다른 글
[오라클] 뷰 생성, 수정하기 (0) | 2021.03.11 |
---|---|
[오라클] 사용자에게 테이블 권한 부여 및 회수하기 (0) | 2021.03.11 |
[오라클] 부모 자식 테이블 및 제약조건 (0) | 2021.03.10 |
[SQL] 테이블 합치기 MERGE (0) | 2021.03.10 |
[SQL] 테이블에 데이터 추가하기 (0) | 2021.03.10 |
댓글