MySQLのオートコミット

MySQLでは、オートコミットを無効にすることで、トランザクションがコミットするのを止める事ができる。

例えばUPDATE文のトランザクションをコミットされるのを止めていると、UPDATE文が実行される際にロックされた行が、ロック状態で維持されるということである。

このオートコミットの設定を上手く使うことで、デッドロックの再現等を意図的に行うことが出来るようになる。

オートロックの設定の変更の仕方は以下の通りである。

//オートコミットを無効にする
set autocommit = 0;

//オートコミットを有効にする
set autocommit = 0;

この autocommitはセッション変数であるため、セッション毎に設定する必要がある。