2011-01-25 9 views
0

私は、コミットされたSQLアップデートファイルをDBに適用するためのプロジェクト用ツールを作成しました。 (デプロイ時に)実行するたびに、適用する必要がある更新ファイルのリストを計算し、それらをトランザクションに適用します。mysql:暗黙のトランザクションコミットを回避する?

最近私は問題を認識しました。つまり、mysqlはDDL文(createなど)が実行されるたびに暗黙的にトランザクションをコミットします。 http://dev.mysql.com/doc/refman/5.0/en/implicit-commit.html

SQLの更新ファイルには、更新ファイルの実行中にトランザクションをコミットすることになるいくつかの文が含まれることがあるので、これは私の問題です。これは問題です。後続の更新が失敗する(時々発生する)たびに、トランザクションをロールバックできるようにするか、少なくとも適用された(完全に)更新ファイルと更新されなかった更新ファイルを追跡できます。

暗黙のトランザクションの問題を回避する方法はありますか?私。それらの1つが失敗するとDDL文のシーケンスをロールバックする方法はありますか?

他の方法で問題を処理する方法はありますか?

おかげ

Gidi

答えて

2

号MySQLはトランザクションのDDLをサポートしていません。 DDL文をDML文から分離するか、おそらく移行ツールを使用するか、RuckUsing

+0

[RuckUsing](https://github.com/ruckus/ruckusing-migrations)が[GitHub]でホストされています( https://github.com/ruckus/ruckusing-migrations)。 – trejder

+1

ありがとう@trejder、私は私の答えでリンクを更新しました – Mchl

関連する問題