본문 바로가기

Oracle/SQL

SQL [TCL] COMMIT / ROLLBACK

COMMIT : 지금까지 작업한 DML 작업 (insert, update, delete, merge ) 를 데이터 베이스에 영구히 저장하겠다.

 

rollback : 지금까지 작업한 DML 작업(insert, update, delete, merge) 를 모두 취소하겠다.

insert.............어쩌고저쩌고

insert.................어쩌고저쩌고 입력한 작업물들 을 

commit................ —————→ 여기까지는 모두 저장이 된것이고 

insert................

update.................

rollback ;  ----------------> commit 다음 insert 문부터 전부다 rollback 이 된다.

 

문제 사원테이블의 월급을 모두 0 으로 변경 후 commit !

update emp set sal = 0;

commit;

문제 사원테이블의 데이터를 전부 delete.

delete from emp ;

rollback 

여기서 rollback 을 하게 되면 update 문 인 월급은 0 으로 변경하고 commit 하였기 때문에 rollback 안되고

delete 문만 아직 commit 전이기 때문에  rollback 이 적용된다.