- ベストアンサー
MySQLでロールバックできない!
JDBCでMySQLに接続し、ロールバック/コミットしたいのですが、以下の例外が発生してロールバックできません。 java.sql.SQLException: General error: Warning: Some non-transactional changed tables couldn't be rolled back 同じコードで、PostgreSQLでは問題なく動作します。 MySQLはDBMSとして自動コミットになっているとのことですが、JDBCからロールバックしたいときはどうすれば良いのでしょうか? 有名な問題なのかもしれませんが、回避策が見つけられませんでした。 ご回答、よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
参考としてURL、日本MySQLユーザ会へのリンクを掲げます。 MySQL J-Docに詳細情報があります。 “6.7 MySQL Transactional and Locking Commands” あたり、もしくは “MySQL はどのように標準互換か?” の章あたりが参考になるかもしれません。 わたしは試してみていないので、何ともいえませんが。 ちなみに、 例外のメッセージは、トランザクションを使わずに変更した テーブルをロールバックすることはできません、というような 意味ですね。 何かこの辺のことは言うまでもない感じもしますが。
- 参考URL:
- http://www.mysql.gr.jp/
その他の回答 (1)
- osamuy
- ベストアンサー率42% (1231/2878)
回答No.1
こいつでしょうか? 結局、rollbackしなくてすむような、コードにしないといけない、のではないかと。
お礼
お礼が遅くなって申し訳ございません。 お二人のご案内に従ってマニュアルを参照してみました。 それによるとどうも、できるくさいのですが、具体的な手順が不明のままです。デフォルトでできないとしているので、使わないのが正解なのかと思っています。 ご回答ありがとうございました。