MySQL: DDLとトランザクション
MySQLでは(他のDBMSでもおおよそ似たようなものだと思うが)、トランザクションの途中で CREATE TABLE文や DROP TABLE文のようなDDLを実行すると強制的にコミットが行われる。これに気付かないと、ロールバックしているはずなのになんかデータが残留してる、ということが起こる(そもそもトランザクションの中でDDLを呼ばなければいけない事態を何とかすべきだが)。DDL以外でも、TRUNCATE TABLE文などでもそうなる。でも、CREATE TEMPORARY TABLEは大丈夫のようだ。
参考 12.4.3. 暗黙のコミットを引き起こすステートメント
参考 12.4.3. 暗黙のコミットを引き起こすステートメント

0 件のコメント:
コメントを投稿
<< ホーム