mysqlではデフォルトでON
だが、
例えば二つのテーブルに対するクエリが発行されて、片方のテーブルのデータは更新されて、もう片方はerrorとなるクエリがあった場合autocommitがONになっているとDB全体で見た場合データの不整合が起こるにも関わらずDBのデータは更新されてしまう。
set autocommit = 0
でオフにできる。オンは1
プログラム上で、エラーが発生したらrollback、正常に処理された場合はcommitするようなするのが基本。