• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:mySQLでロールバックされずコミットされる)

mySQLでロールバックされずコミットされる

このQ&Aのポイント
  • 現在JavaのjdbcでmySQLに接続してデータを更新する処理を入れているのですが、AutoCommitをfalseにしておりrollback処理をしているにも関わらずcommitがされている状態になっています。
  • ログ出力にてメソッド内でsetAutoCommitがfalse、rollbackが実行されていて、commitが実行されいないのは確認済みですが、実際にはデータがロールバックされずcommitされたのちにコネクションが閉じられています。
  • このような勝手なコミットがされてしまう原因で他に何か思い当たる確認点はないでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.1

こんにちは。 テーブルのエンジンがInnoDBとかトランザクションが利用出来る物になっていることは確認していますか? それが出来ているのであれば 実際にロールバックされる前にコミットしてしまっているとかでしょうかね。

heka_11
質問者

補足

トランザクションが利用できることは確認済みです。 実際には6つのスキーマに対してそれぞれ更新しており、 すべてのスキーマをロールバックしているのですが 一番最後の6つ目のスキーマのみコミットされている状態となっております。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • sech1152
  • ベストアンサー率72% (45/62)
回答No.2

mySQLだと、一部のSQLステートメントを実行する前に、暗黙的にコミットしてしまうようですが、そのあたりは大丈夫でしょうか? mySQL 5.1のリファレンス http://dev.mysql.com/doc/refman/5.1/ja/innodb-implicit-commit.html この中に、「次の各ステートメント(そしてそれらの同義語)は、まるでステートメントを実行する前に COMMITを行ったかのように、暗黙にトランザクションを終了します。 ・・・」とあります。

すると、全ての回答が全文表示されます。

関連するQ&A