이렇게 자동커밋이 활성화된 상태에서 수동으로 트랜잭션 처리를 하고 싶을 때, 즉 내가 원할 때 트랜잭션 처리가 이뤄지게 하려면 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;
    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.