CREATE TABLE
私はDDLを発行するプログラムに取り組んでいます。同様のDDLをロールバックできるかどうかを知りたいです。
- ポストグレ
- マイグレーション
- SQLite
- その他
各データベースが DDL を使用してトランザクションを処理する方法を説明します。
ベストアンサー1
http://wiki.postgresql.org/wiki/Transactional_DDL_in_PostgreSQL:_A_Competitive_AnalysisPostgreSQL の観点からこの問題の概要を説明します。
このドキュメントによれば、DDL はトランザクション型ですか?
- PostgreSQL - はい
- MySQL - いいえ。DDL は暗黙的なコミットを引き起こします。
- Oracle Database 11g リリース 2 以降 - デフォルトではいいえですが、エディションベースの再定義と呼ばれる代替手段が存在します。
- Oracle の古いバージョン - いいえ。DDL は暗黙的なコミットを引き起こします。
- SQL Server - はい
- Sybase Adaptive Server - はい
- DB2 - はい
- Informix - はい
- Firebird (Interbase) - はい
SQLite にもトランザクション DDL があるようです。SQLite でステートメントを実行することができましたROLLBACK
。CREATE TABLE
ドキュメントには、CREATE TABLE
特別なトランザクションの「落とし穴」については何も記載されていません。