본문 바로가기
IT/Oracle

오라클 COMMIT, ROLLBACK 알아보기

by flatsun 2019. 3. 12.
반응형


이번에는 오라클의 COMMIT과 ROLLBACK에 대해 알아보자


간단하게 설명하자면


COMMIT은 내가 INSERT, UPDATE, DELETE 등 명령문을 수행한

내역을 COMMIT 시 실제 데이터베이스 내에 적용하는 것인데


그렇다면 COMMIT 전에 한 것은 뭐였나?


한 결과가 이렇습니다 하고 보여 주는 것이지 진짜 넣은 것이 아니기 때문에

실제 데이터베이스에 적용하려면 COMMIT을 해야한다


사용법은 COMMIT; 만 쓰면 된다



이게 COMMIT을 안하면


나중에 해당 데이터베이스를 가지고 뭔가 할 때

분명히 insert나 update 시켜 놓은 것이 증발하는 현상이 발생하는데


이게 얼마나 시간이 오래 지나야 그렇게 되는지 모르겠어서

시간 제약상 언젠가는 없어진다는 것을 알아두자


이제 COMMIT의 반대인 ROLLBACK을 한번 알아보자


ROLLBACK은 해당 내가 수행한 내용을 COMMIT 전의 내용으로 모두 돌리는 것인데

사용법 역시 COMMIT과 비슷하게

 ROLLBACK;

 이다


ROLLBACK을 수행 시 마지막으로 COMMIT을 수행했던 내용을 돌아가는데


간단한 예제를 통해 알아보자면..



insert를 3번 하고 COMMIT과 ROLLBACK이 있다


여기서 해당 내용대로 다 돌리고

마지막에 select를 했을 시 


철수는 몇 줄이 나오게 될 것인가??



이변없이 한 줄이 나오게 되는데


왜냐면 


총 세 줄을 삽입했지만

COMMIT을 한 시점에서 삽입된 줄은 한 줄이기 때문에


두 줄을 더 삽입했어도


ROLLBACK을 하면 처음 한 줄만 삽입한 상태로 돌아가기 때문에

한 줄만 들어간 상태가 되는 것이다


마지막으로 오라클에서 COMMIT과 ROLLBACK을 정리해 보자면


COMMIT

insert, update, delete 등 수행한 내용을 데이터베이스에 저장한다


ROLLBACK

마지막 COMMIT 한 상태로 되돌린다

반응형

댓글