SQL - 트랜잭션, TCL

1138 단어 oraclesqloracle

트랜잭션

데이터를 변경하는 논리적인 단위.
하나 이상의 DML문 or DDL문 하나 or DCL문 하나로 구성

트랜잭션 종료시점

• COMMIT 또는 ROLLBACK 문이 실행된 경우
• DCL 문이 실행된 경우
• 사용자가 SQL*Plus 를 종료하는 경우
• 시스템에 장애가 있거나 시스템이 고장 난 경우
• DDL 문 (예: CREATE TABLE) 이 실행된 경우


TCL

  • COMMIT
  • ROLLBACK
  • SAVEPOINT

COMMIT : 트랜잭션을 DB에 반영하고 종료
ROLLBACK : 트랜잭션을 취소하고 종료
SAVEPOINT : 저장 기준점. COMMIT 하면 모두 초기화된다.

SQL> INSERT INTO DEPT
VALUES (99, ‘인사과’, ‘서울’);
SQL> SAVEPOINT A;	--INSERT문의 실행까지를 표시
SQL> 
SQL> UPDATE EMP
SET MGR = 7902
WHERE EMPNO = 7934;
SQL> ROLLBACK TO A;	--UPDATE문만 실행취소되며, INSERT문의 트랜잭션은 유효함
SQL>
SQL> DELETE FROM EMP;
SQL> COMMIT;		--SAVEPOINT A 이후에 실행된 INSERT와 DELETE문의 결과가 테이블에 영구히 반영.

명시적(Explicit) Transaction 제어

• COMMIT
• SAVEPOINT 이름
• ROLLBACK

묵시적(Implicit) Transaction 제어

• 자동 COMMIT
i. DDL (DDL은 하나의 명령어가 하나의 트랜잭션)
ii. DCL (GRANT, REVOKE)
iii. exit
• 자동 ROLLBACK
i. 비정상적 종료

좋은 웹페이지 즐겨찾기