我为我们的项目编写了一个工具,用于将已提交的sql更新文件应用于数据库。每当运行(部署)时,它都会计算需要应用的更新文件列表,并在事务处理中应用它们。
最近我意识到了一个问题:每当执行DDL语句(如create)时,mysql都会隐式提交事务。 http://dev.mysql.com/doc/refman/5.0/en/implicit-commit.html
这对我来说是一个问题,因为有时sql更新文件包含多个语句,据我所知,这将导致在执行更新文件的过程中提交事务。这是一个问题,因为每当后续更新失败(这种情况不时发生)时,我希望能够回滚事务,或者至少跟踪哪些更新文件应用(完全),哪些不是。
是否有解决隐式交易问题的方法?即有没有办法在其中一个DDL语句失败时回滚一系列DDL语句?
我可以处理这个问题的任何其他建议吗?
由于
吉迪