START TRANSACTION 명령을 실행하여 사용자는 새 MySQL 트랜잭션을 시작할 수 있습니다. 트랜잭션의 동작은 SQL AUTOCOMMIT 모드에 따라 달라집니다. 기본 모드는 'AUTOCOMMIT ON' 모드로 각 MySQL 문이 완전한 트랜잭션으로 간주되고 완료되면 기본적으로 커밋됩니다. 다음과 같이 세션 변수 AUTOCOMMIT를 1로 설정하여 시작할 수 있습니다. -
SET AUTOCOMMIT = 1 mysql> SET AUTOCOMMIT = 1; Query OK, 0 rows affected (0.07 sec)
사용자가 이러한 종류의 MySQL 트랜잭션 동작을 변경하려면 'AUTOCOMMIT OFF' SQL 모드를 설정할 수 있습니다. 이 모드에서는 후속 MySQL 문이 트랜잭션처럼 작동하고 명시적 COMMIT 문이 발행될 때까지 활동이 커밋되지 않습니다. 이 모드에서 새 세션의 첫 번째 실행 가능한 문은 암시적으로 새 다중 문 트랜잭션을 시작합니다. 다음과 같이 세션 변수 AUTOCOMMIT를 0으로 설정하여 시작할 수 있습니다. -
SET AUTOCOMMIT = 0 mysql> SET AUTOCOMMIT = 0; Query OK, 0 rows affected (0.00 sec)
SET AUTOCOMMIT =0을 사용하는 대신 InnoDB에서 트랜잭션의 경우 COMMIT로 커밋 명령.
두 SQL 모드에서 트랜잭션은 다음과 같이 START TRANSACTION 명령으로 시작됩니다. -
mysql> START TRANSACTION; Query OK, 0 rows affected (0.00 sec)
실제로 위의 쿼리는 트랜잭션이 종료될 때까지 이어지는 명령문을 단일 작업 단위로 처리해야 한다고 MySQL에 알립니다.