mysql:处理隐式事务提交?

mysql:处理隐式事务提交?,mysql,transactions,Mysql,Transactions,我为我们的项目编写了一个工具,用于将提交的sql更新文件应用到数据库。无论何时运行(在部署时),它都会计算需要应用的更新文件列表,并将其应用到事务中 最近我意识到了一个问题:每当执行DDL语句(如create)时,mysql都会隐式提交事务 这对我来说是个问题,因为有时候SQL更新文件包含几个语句,正如我理解的那样,这将导致在执行更新文件的过程中提交事务。这是一个问题,因为每当后续更新失败时(不时发生),我希望能够回滚事务,或者至少跟踪哪些更新文件已应用(完全应用),哪些未应用 有办法解决隐式事

我为我们的项目编写了一个工具,用于将提交的sql更新文件应用到数据库。无论何时运行(在部署时),它都会计算需要应用的更新文件列表,并将其应用到事务中

最近我意识到了一个问题:每当执行DDL语句(如create)时,mysql都会隐式提交事务

<>这对我来说是个问题,因为有时候SQL更新文件包含几个语句,正如我理解的那样,这将导致在执行更新文件的过程中提交事务。这是一个问题,因为每当后续更新失败时(不时发生),我希望能够回滚事务,或者至少跟踪哪些更新文件已应用(完全应用),哪些未应用

有办法解决隐式事务问题吗?也就是说,有没有一种方法可以在一个DDL语句失败时回滚一系列DDL语句

还有什么其他建议我可以如何处理这个问题吗

谢谢


Gidi

否。MySQL不支持事务性DDL。您或者需要将DDL语句与DML语句分开,或者尝试使用迁移工具,如

现在托管在。谢谢@trejder,我已经更新了我答案中的链接