본문 바로가기
코딩공부/DB

Oracle - TCL문 (01)

by Dobby_72 2025. 2. 8.
반응형

TCL(TRNASACTION CONTROL LANGUAGE) : 트랜잭션 제어 언어

2025.01.20 - [코딩공부/DB] - Oracle - Select문 (01)

2025.01.20 - [코딩공부/DB] - Oracle - Select문 (02)

2025.01.20 - [코딩공부/DB] - Oracle - Select문 (03)

2025.01.20 - [코딩공부/DB] - Oracle - Select문 (04)

2025.02.08 - [코딩공부/DB] - Oracle - DML (01)

2025.02.08 - [코딩공부/DB] - Oracle - Select문 (05)

COMMIT(트랜잭션 종료 후 저장), ROLLBACK(트랜잭션 취소), SAVEPOINT(임시저장)

DML : 데이터 조작 언어로 데이터의 삽입, 수정, 삭제

--> 트랜잭션은 DML과 관련되어 있음

TRANSACTION이란?

- 데이터베이스의 논리적 연산 단위

- 데이터 변경 사항을 묶어 하나의 트랜잭션에 담아 처리함

- 트랜잭션의 대상이 되는 데이터 변경 사항 : INSERT, UPDATE, DELETE(DML)

EX) INSERT 수행 ------------------------------> DB 반영(X)

INSERT 수행 --> 트랜잭션에 추가 --> COMMIT --> DB반영(O)

INSERT 10번 수행 --> 1개 트랜잭션에 10개 추가 --> ROLLBACK --> DB반영(X) 1)

1. COMMIT : 메모리 버퍼(트랜잭션)에 임시 저장된 데이터 변경 사항을 DB에 반영

2. ROLLBACK : 메모리 버퍼(트랜잭션)에 임시 저장된 데이터 변경 사항을 삭제 마지막 COMMIT 상태로 돌아감

3. SAVEPOINT : 메모리 버퍼(트랜잭션)에 저장 지점을 정의하여 ROLLBACK 수행 시 전체 작업을 삭제하는 것이 아닌 저장 지점까지만 일부 ROLLBACK

[SAVEPOINT 사용법]

SAVEPOINT 포인트명1;

...

SAVEPOINT 포인트명2;

...

ROLLBACK TO 포인트명1; -- 포인트1 지점까지 데이터 변경사항 삭제

 

DELETE FROM DEPARTMENT2 WHERE DEPT_ID ='D0';

--D0 삭제 시점에 SAVEPOINT 지정
SAVEPOINT SP1; Savepoint이(가) 생성되었습니다.

-- D9 삭제
DELETE FROM DEPARTMENT2 WHERE DEPT_ID ='D9';
SELECT * FROM DEPARTMENT2;

-- 일반 ROLLBACK 시 D9, D0가 복구됨
ROLLBACK;
SELECT * FROM DEPARTMENT2;

-- SP1까지 ROLLBACK
ROLLBACK TO SP1;
SELECT * FROM DEPARTMENT2;

ROLLBACK;
SELECT * FROM DEPARTMENT2;
728x90
반응형

'코딩공부 > DB' 카테고리의 다른 글

Oracle - DDL (02)  (0) 2025.03.02
Oracle - DDL (01)  (0) 2025.03.02
Oracle - Select문 (05)  (0) 2025.02.08
Oracle - DML (01)  (0) 2025.02.08
Oracle - Select문 (04)  (0) 2025.01.20