트랜잭션 제어어
트랜잭션 제어어(TCL, Transaction Control Language)는 RDBMS의 특징 중 하나인 트랜잭션 처리를 수행하는 SQL 문장입니다. MySQL에서는 공식적으로 TCL이란 용어를 사용하지는 않지만, 일반적으로 트랜잭션을 처리하는 문장을 TCL이라고 합니다. 종류는 다음과 같습니다.
▼ 표 1-4 TCL의 종류
종류 |
설명 |
COMMIT |
데이터 조작 작업이 성공하면 모든 데이터 변경사항(입력, 수정, 삭제)을 반영하는 문장임 |
ROLLBACK |
데이터 조작 작업이 실패하거나 작업을 취소하고 싶을 때 사용함. ROLLBACK 문을 실행하면 데이터를 입력하거나 수정, 삭제한 모든 작업이 취소되고 데이터는 변경 전 상태로 되돌아감 |
START TRANSACTION 또는 BEGIN |
새로운 트랜잭션이 시작됨을 알리는 문장임. START TRANSACTION 또는 BEGIN 문이 실행된 후에 입력된 DML 문장부터 COMMIT 문이나 ROLLBACK 문을 만날 때까지가 하나의 트랜잭션이 됨 |
SAVEPOINT |
트랜잭션에 이름을 부여하는 문장임. SAVEPOINT 문을 사용하면 지정된 이름으로 트랜잭션이 시작되고, COMMIT이나 ROLLBACK 문을 만나면 트랜잭션이 종료됨 |
SET autocommit |
트랜잭션을 처리하는 문장이 아니라 MySQL에서 자동 커밋(autocommit) 모드를 설정하는 문장임. 자동 커밋이 활성화되면 모든 DML 문장을 실행하고, 별도로 COMMIT 문을 실행하지 않아도 자동으로 데이터의 변경사항이 적용됨. MySQL은 기본으로 자동 커밋 모드가 활성화되어 있음 |
TCL은 데이터의 변경사항을 최종으로 적용하는 역할을 합니다. 따라서 DML 중 SELECT를 제외한 INSERT, UPDATE, DELETE 문을 수행한 후 TCL 문장들을 사용합니다. 여기서 소개한 트랜잭션 처리 문장의 사용법은 10장 데이터를 입력/수정/삭제하고 트랜잭션 처리하기에서 자세히 다룹니다.