- 締切済み
ロールバックできないステートメントについて
こんばんは。 既存のテーブルのカラムを削除することになりまして、 以下の手順で変更をかけました。 環境:mysql_5.5 mysql>begin; mysql>alter table test_table drop column test_column; mysql>desc test_table; mysql>rollback; mysql>desc test_table; しかし、ロールバックをかけても元に戻らなかったのですが、 http://dev.mysql.com/doc/refman/5.1/ja/cannot-roll-back.htmlhttp://dev.mysql.com/doc/refman/5.1/ja/cannot-roll-back.html の記述にあるようにバージョン5.5でもalterでのロールバックは出来ないのでしょうか。 英語のサイトを見たのですが、ただしく訳せませんでした。 http://dev.mysql.com/doc/refman/5.5/en/implicit-commit.htmlhttp://dev.mysql.com/doc/refman/5.5/en/implicit-commit.html 回避方法があったら、教えてください。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- notnot
- ベストアンサー率47% (4900/10359)
そもそも、rollbackは、データの変更(挿入・削除・アップデート)を無かったことにするコマンドです。 テーブル構造の変更は対象外です。これはMySQLに限らずRDBMS一般の基本です。
- yambejp
- ベストアンサー率51% (3827/7415)
暗黙のコミットを引き起こすステートメント http://dev.mysql.com/doc/refman/5.1/ja/implicit-commit.html
お礼
回答ありがとうございます。 「暗黙のコミットを引き起こす」ということだったので、 SET AUTOCOMMIT = 0; にしてやってみたんですが、やはりロールバックできていなかったので そういうことではなかったんですね。 今後は、気をつけながらやっていきます。
お礼
回答ありがとうございます。 知り合いが、PostgreSQLでテーブル作成や定義変更の際にrollbackしてると言っていたので、Mysqlでも出来るのか調べていたのですが、自分の聞き違いかも知れないのないので、もう一度確認をとってみます。 ありがとうございます。