autocommitとは
**InnoDBではデフォルトでautocommitは有効。**この状態でトランザクションを実行せずにSQLを実行すると、1つのSQLごとにcommitが行われる。もちろんrollbackは行われない。
トランザクションを実行すれば、明示的にcommitしたタイミングでcommitは行われる。rollbackも可能。
無効にした場合、SQLの実行及びトランザクションの開始でトランザクションが開始する。トランザクションが開始するので、明示的なcommitでcommitされる。
autocommitの変更方法
5.5.8移行であれば、my.cnfに書くことで変更可能。
[mysqld]
autocommit = 1
疑問点
autocommitを無効にするシチュエーションがいまいちよくわからない。
OracleはMySQLと逆でautocommitがデフォルトでOFFらしいので、OracleからMySQLへDBを移行した場合なのかなと。詳しい人いたら教えてください。
参考
MySQLのAUTOCOMMIT(オートコミット)覚え書き
MySQLのautocommitとトランザクション分離レベルのメモ