MySQL
は、デフォルトで新しい接続のセッション開始時に自動コミットモードを有効にするため、各
SQL
ステートメントからエラーが返されなかった場合にそのステートメントのあとでコミットを行います。もしステートメントがエラーを返したら、コミットやロールバックの動作はそのエラーによって決まります。項9.12. 「InnoDB
エラー処理」
を参照してください。
自動コミットが無効化されたセッションの終了時に最後のトランザクションを明示的にコミットしなかった場合、MySQL はそのトランザクションをロールバックします。
一部のステートメントはまるでユーザーがそのステートメントの実行前に
COMMIT
を行ったかのように、暗黙的にトランザクションを終了します。詳細については、項8.4.3. 「暗黙のコミットを引き起こすステートメント」をご参照ください。