프로그래밍/Oracle

[Oracle] 데이터 저장 및 취소

eunki 2022. 6. 3. 17:38
728x90

commit

마지막으로 commit 한 이후에 지금까지 작업한 모든 데이터 입력, 수정, 삭제 작업을 전부 database 에 영구히 저장하겠다.

 

rollback

마지막 commit 이후에 지금까지 작업한 모든 데이터 입력, 수정, 삭제 작업들을 모두 취소하겠다.

 

 

 

암시적 commit 이 수행되는 경우

  1. 정상 종료를 했을 때 (exit)
  2. DDL문을 실행했을 때 (create, alter, drop, truncate, rename)
  3. DCL문을 실행했을 때 (grant, revoke)

데이터 입력, 수정, 삭제 작업을 했으면 다른 작업을 수행하기 전에

지금 진행했던 작업들은 commit 하거나 rollback 하고 다른 작업을 수행한다.

 

 

암시적 rollback 이 수행되는 경우

  1. 컴퓨터가 비정상적으로 종료되었을 때
    컴퓨터 전원 버튼을 눌러서 컴퓨터를 끄면 암시적 롤백이 일어난다.

 

 

 

예제 1. 사원 테이블의 월급을 전부 0 으로 변경하고 commit

update emp
    set sal = 0;
    
commit;

 

 

 

예제 2. 사원 테이블의 데이터를 전부 delete 문으로 지우고 rollback

delete from emp;

rollback;

이 상태에서 rollback 을 하면 delete 만 rollback 되고, 예제 1의 update 는 rollback 되지 않는다.

728x90