重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

JDBCでMySQLに接続し、ロールバック/コミットしたいのですが、以下の例外が発生してロールバックできません。

java.sql.SQLException: General error: Warning: Some non-transactional changed tables couldn't be rolled back

同じコードで、PostgreSQLでは問題なく動作します。

MySQLはDBMSとして自動コミットになっているとのことですが、JDBCからロールバックしたいときはどうすれば良いのでしょうか?

有名な問題なのかもしれませんが、回避策が見つけられませんでした。
ご回答、よろしくお願いします。

A 回答 (2件)

参考としてURL、日本MySQLユーザ会へのリンクを掲げます。


MySQL J-Docに詳細情報があります。
“6.7 MySQL Transactional and Locking Commands”
あたり、もしくは
“MySQL はどのように標準互換か?”
の章あたりが参考になるかもしれません。
わたしは試してみていないので、何ともいえませんが。

ちなみに、
例外のメッセージは、トランザクションを使わずに変更した
テーブルをロールバックすることはできません、というような
意味ですね。
何かこの辺のことは言うまでもない感じもしますが。

参考URL:http://www.mysql.gr.jp/
    • good
    • 0
この回答へのお礼

お礼が遅くなって申し訳ございません。
お二人のご案内に従ってマニュアルを参照してみました。
それによるとどうも、できるくさいのですが、具体的な手順が不明のままです。デフォルトでできないとしているので、使わないのが正解なのかと思っています。

ご回答ありがとうございました。

お礼日時:2002/09/26 22:59

こいつでしょうか?



結局、rollbackしなくてすむような、コードにしないといけない、のではないかと。

参考URL:http://www.mysql.gr.jp/jpdoc/3.23.x/manual.ja_to …
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!