Tsurugi Advent Calendar 2023の10日目です。
Tsurugiでは、DDLもトランザクションの中で実行します。
ただしトランザクション管理外なので、createやdropが成功した時点で(コミットしなくても)テーブルが作成・削除されますし、ロールバックしても元には戻りません。
なお、DDLのトランザクションもシリアライゼーションエラーになることがあるらしいです。
(システム内部で使っているテーブルが競合した場合だとか)
なので、DDLは並列に実行しない方がいいでしょう。(普通はしないと思いますが^^;)
それと、DDLとDMLを同一のトランザクションで実行することも非推奨です。
createとinsertを同一のトランザクションで実行することはよくあると思いますが…。(実際に試してみると、createとinsertを同じトランザクションで実行することは可能なようですが、何か不具合が起きることがあるのかもしれません)
DDLとDMLを別トランザクションで同時に実行するのもやめた方がいいです。(普通はしないと思いますが^^;)
特に、DMLで操作中のテーブルをdropすると、DBがクラッシュすることがあります。
こういった制限は、現時点のTsurugi 1.0.0-BETA1の制限なので、将来的には緩和されるのではないかと思いますが…。
※コメント投稿者のブログIDはブログ作成者のみに通知されます