이렇게 자동커밋이 활성화된 상태에서 수동으로 트랜잭션 처리를 하고 싶을 때, 즉 내가 원할 때 트랜잭션 처리가 이뤄지게 하려면 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;