06. TCL

CHOISUJIN·2023년 1월 13일
0
post-thumbnail

TCL(Transaction Control Language)

트랜잭션 제어 언어

  • DML( (SELECT), INSERT, UPDATE, DELETE )와 관련되어 있다!

트랜잭션(Transaction)이란?
데이터베이스의 논리적 연산 단위 (메모리 버퍼)
--> 데이터베이스의 상태를 변화시키기 위해서, 수행하는 작업단위

  • 변경 사항을 묶어 하나의 트랜잭션에 담아 처리함
  • 트랜잭션의 대상이 되는 데이터 변경 사항 : INSERT, UPDATE, DELETE + MERGE

ex)
INSERT --> DB 반영 (X)
: INSERT를 수행한다고 바로 DB에 반영되는 것이 아니다!
INSERT --> 트랜잭션에 추가 --> COMMIT --> DB 반영 (O)
INSERT를 수행하면 트랜잭션에 추가가 되고, COMMIT을 해야 비로소 DB에 반영이 된다!!

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

📍 COMMIT

트랜잭션에 임시 저장된 데이터 변경사항을 DM에 반영(저장)

COMMIT;

📍 ROLLBACK

트랜잭션에 임시 저장된 데이터 변경사항을 삭제하고 마지막 COMMIT 상태(시점)으로 돌아감
--> DB에 변경 내용 반영 X

ROLLBACK;

📍 SAVEPOINT

트랜잭션에 저장 지점을 정의하여 ROLLBACK 수행 시 전체 작업을 삭제하는 것이 아닌 저장 지점까지만 일부 ROLLBACK

SAVEPOINT 포인트명1;
...
SAVEPOINT 포인트명2;
...
ROLLBACK TO 포인트명1ㅣ -- 포인트명1 지점까지 데이터 변경사항 삭제
profile
매일매일 머리 터지는 중 ᕙ(•̀‸•́‶)ᕗ

0개의 댓글