본문 바로가기

데이터베이스

[ORACLE 7일차] TCL

◈ COMMIT

커밋은 INSERT, UPDATE, DELETE문으로 변경한 데이터를 데이터베이스에 반영한다.

변경 전 이전 데이터는 잃어버린다. 즉, A값을 B로 변경하고 COMMIT을 하면 A값은 잃어버린다.

COMMIT이 완료되면 다른 모든 데이터베이스 사용자는 변경된 데이터를 볼 수 있다.

COMMIT을 실행하면 하나의 트랜잭션 과정을 종료한다.


SQL> UPDATE EMP SET ~~

SQL> commit;


commit을 하면 이전의 삽입, 수정, 삭제 내용이 모두 데이터베이스에 저장된다.


◈ ROLLBACK

ROLLBACK을 실행하면 데이터에 대한 변경 사용을 모두 취소하고 트랜잭션을 종료한다.

SELECT, UPDATE, DELETE문의 모든 작업을 취소한다. 단, 이전에 COMMIT한 곳까지만 복구한다.



◈ SAVEPOINT (저장점)

SAVEPOINT는 트랜잭션을 작게 분할하여 관리하는 것으로 SAVEPOINT를 사용하면 지정된 위치까지만 트랜잭션을 ROLLBACK할 수 있다.

SAVEPOINT의 지정은 SAVEPOINT<SAVEPOINT명>을 실행한다.

지정된 SAVEPOINT까지만 데이터 변경을 취소하고 싶은 경우는 ROLLBACK TO <SAVEPOINT명>을 실행하면 된다.


savepoint t2;

update emp set ename='하이마트' where empno=101;


하이마트로 변경된 것을 확인할 수 있다.


rollback to t2;

select * from emp;


t2 시점으로 rollback을 한 것을 확인할 수 있다.




 



'데이터베이스' 카테고리의 다른 글

[ORACLE 9일차] UNION, MINUS, Connect by  (0) 2019.01.15
[ORACLE 8일차] JOIN  (0) 2019.01.14
[ORACLE 6일차] DCL  (0) 2019.01.12
[ORACLE 5일차] DML (4)  (0) 2019.01.11
[ORACLE 4일차] DML (3)  (0) 2019.01.10