😺
MySQLの暗黙的コミット
結論
MySQLはDDL、つまりテーブルやカラムの構造を操作する命令、つまり「ALTER ...」などなど、を実行すると暗黙的コミットを行います。
つまり、そういった処理で「beginTransaction」とか「rollback」とか「commit」とか頑張って書いても無駄です。
ロールバックしても元には戻りませんし、コミットなんか書かなくても勝手にコミットされます。
そういう場面に出会うか、と言われるとあまり出会わないと思いますが、弊社のDB設計WEBアプリケーション「N-DEV」ではそういう処理をかなりやるので、こりゃ大変だ、ってなわけで。
参考:
因みに
試してはいませんが、PostgreSQLだとDDLでも暗黙的コミットはしない、つまり寧ろ、DDLのあとでもコミットが必要、らしいです。
「N-DEV」はPostgreSQLと相性良い気がする、PostgreSQL使ってみようかな
ッてな話です、
Discussion