我只使用过 MySQL,自从发现 DDL 执行隐式提交后,我正在寻找一种在 MySQL 中遵守它的解决方案。
万一 MySQL 使用一些 hacky 方法也无法管理它,一个可行的选择是切换 SQL 系统。是否有任何允许开箱即用的事务 DDL 或者至少比 MySQL 更易于设置?
我认为没有任何方法可以使 MySQL 中的 DDL 事务。
PostgreSQL 具有完全事务性 DDL,我个人发现它的设置和运行与 MySQL 一样简单(实际上我发现 MySQL 使用起来更复杂,因为它的 SQL 方言具有所有限制)。
根据此文档,PostgreSQL、DB2、Sybase、Informix 和 Firebird 支持事务 DDL,在某些情况下支持 SQL Server。Oracle 自动提交每个 DDL 语句,但有一些额外的“版本控制”机制。
你到底想达到什么目的?可能有比事务 DDL 更好的方法。