더북(TheBook)

이렇게 자동커밋이 활성화된 상태에서 수동으로 트랜잭션 처리를 하고 싶을 때, 즉 내가 원할 때 트랜잭션 처리가 이뤄지게 하려면 START TRANSACTION 문으로 트랜잭션을 선언하면 됩니다. 어떻게 지정하는지 구문을 살펴보죠.

구문 10-10

START TRANSACTION;
INSERT 문;
UPDATE 문;
DELETE 문;
...
COMMIT(또는 ROLLBACK);

자동커밋이 활성화된 상태에서 START TRANSACTION 문을 사용하면 일시적으로 자동커밋이 비활성화되고 COMMIT이나 ROLLBACK 문을 만나 트랜잭션이 종료되면 다시 활성화됩니다. 따라서 START TRANSACTION 문으로 트랜잭션 처리를 제어할 수 있습니다. 예제를 봅시다.

코드 10-36

START TRANSACTION;

-- 데이터 삭제
DELETE FROM emp_tran1
 WHERE emp_no >= 1006;

-- 데이터 수정
UPDATE emp_tran1
   SET salary = 0
 WHERE salary IS NULL;

-- 취소 처리
ROLLBACK;

SELECT *
  FROM emp_tran1;
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.