是否可以回滚主要SQL数据库中的CREATE TABLE和ALTER TABLE语句?

我正在开发一个发布DDL的程序。我想知道CREATE TABLE和类似的DDL是否可以回滚

> Postgres
> MySQL
> SQLite
> et al

描述每个数据库如何使用DDL处理事务。

http://wiki.postgresql.org/wiki/Transactional_DDL_in_PostgreSQL:_A_Competitive_Analysis从PostgreSQL的角度提供了这个问题的概述。

根据本文档是DDL事务吗?

> PostgreSQL – 是的
> MySQL – no; DDL导致隐式提交
> Oracle Database 11g第2版及更高版本 – 默认情况下为no,但存在一个称为基于版本的重定义的替代方法
>旧版本的Oracle – 没有; DDL导致隐式提交
> SQL Server – 是的
> Sybase Adaptive Server – 是
> DB2 – 是的
> Informix – 是的
> Firebird(Interbase) – 是的

SQLite也似乎也有事务DDL。我能够在SQLite中ROLLBACK一个CREATE TABLE语句。它的CREATE TABLE文档没有提到任何特殊的事务性“getchas”。

http://stackoverflow.com/questions/4692690/is-it-possible-to-roll-back-create-table-and-alter-table-statements-in-major-sql

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:是否可以回滚主要SQL数据库中的CREATE TABLE和ALTER TABLE语句?