프로그래밍/Oracle
[Oracle] 데이터 저장 및 취소
eunki
2022. 6. 3. 17:38
728x90
commit
마지막으로 commit 한 이후에 지금까지 작업한 모든 데이터 입력, 수정, 삭제 작업을 전부 database 에 영구히 저장하겠다.
rollback
마지막 commit 이후에 지금까지 작업한 모든 데이터 입력, 수정, 삭제 작업들을 모두 취소하겠다.
암시적 commit 이 수행되는 경우
- 정상 종료를 했을 때 (exit)
- DDL문을 실행했을 때 (create, alter, drop, truncate, rename)
- DCL문을 실행했을 때 (grant, revoke)
데이터 입력, 수정, 삭제 작업을 했으면 다른 작업을 수행하기 전에
지금 진행했던 작업들은 commit 하거나 rollback 하고 다른 작업을 수행한다.
암시적 rollback 이 수행되는 경우
- 컴퓨터가 비정상적으로 종료되었을 때
컴퓨터 전원 버튼을 눌러서 컴퓨터를 끄면 암시적 롤백이 일어난다.
예제 1. 사원 테이블의 월급을 전부 0 으로 변경하고 commit
update emp
set sal = 0;
commit;
예제 2. 사원 테이블의 데이터를 전부 delete 문으로 지우고 rollback
delete from emp;
rollback;
이 상태에서 rollback 을 하면 delete 만 rollback 되고, 예제 1의 update 는 rollback 되지 않는다.
728x90