국비/Oracle

[05-1] Oracle TCL (COMMIT, ROLLBACK, SAVEPOINT)

박머루 2022. 5. 9. 20:37
TCL : TRANSACTION CONTROL LANGUAGE
트랜잭션을 제어하는 언어
트랜잭션 TRANSACTION
데이터베이스의 논리적 연산단위

데이터 조작 언어(DML : INSERT, UPDATE, DELETE) 데이터의 변경사항들을 하나의 트랜잭션으로 묶어서
처리(COMMIT확정)하기 전까지는 변경사항들을 하나의 트랜잭션에 담는다

트랜잭션의 대상이 되는 SQL : INSERT UPADATE DELETE => DML
COMMIT 트랜잭션 종료처리 후 확정
ROLLBACK 트랜잭션 취소
SAVEPOINT 임시저장
ROLLBACK;
-- 하나의 트랜잭션에 담겨있는 변경사항들을 삭제한 후 마지막 COMMIT 시점으로 돌아감

COMMIT;
-- 하나의 트랜잭션에 담겨 있는 변경사항을 실제 DB에 반영하겠다.
-- 실제 반영시킨 후 트랜잭션은 비워짐

SAVEPOINT sp1;
-- SAVEPOINT 이름;
-- 지금 시점 임시저장점 정의

ROLLBACK TO sp1;
DDL 구문 (CREATE, ALTER, DORP)을 실행하는 순간
기존의 트랜잭션에 있는 모든 변경사항들을 무조건 실제 DB에 반영,
COMMIT 시킨 후에 DDL이 수행 됨

=> DDL수행 전 변경사항이 있다면 정확히 픽스(COMMIT, ROLLBACK)하고 DDL을 실행해야 한다.

 

DDL : 객체 구조를 CREATE 만들고 ALTER 고치고 DROP 버리고
DQL : SELECT 조회
DML : 테이블에 새로운 데이터 INSERT 삽입 UPDATE 갱신 DELETE 삭제
DCL : 계정에게 객체 접근 권한, 시스템 권한을 GRANT 권한부여 REVOKE 권한회수
TCL : COMMIT 트랜잭션 종료 처리 후 확정(트랜잭션의 변경사항을 실제 DB에 반영)
       ROLLBACK 트랜잭션에 담겨있는 변경사항을 삭제 후 마지막 COMMIT 시점으로 돌아감
       SAVEPOINT 이름; 중간저장

'국비 > Oracle' 카테고리의 다른 글

[05-3] Oracle OBJECT(SEQUENCE)  (0) 2022.05.09
[05-2] Oracle OBJECT(VIEW)  (0) 2022.05.09
[04-4] Oracle DCL (GRANT, REVOKE)  (0) 2022.05.06
[04-3] Oracle DML (INSERT, UPDATE, DELETE)  (0) 2022.05.06
[04-2] Oracle DDL (ALTER, DROP)  (0) 2022.05.06