我想我的程序能够安装插件创建表,并回滚如果发生错误所做的所有更改。所以我创建了一个事务来保存安装插件时添加的所有内容。问题是插件可能想要创建表,并且这样做会自动提交MySQL中的当前事务。的MySQL不提交当前事务
见Statements That Cause an Implicit Commit在MySQL网站。
我如何能做到这一点任何想法?
我想过使用临时表,因为它们不会自动提交,除非它们使用的内存太多,但它看起来像临时表无法回滚(并且我还没有找到方法将它们转换为永久表)。
我刚刚发现了关于“save points”,但我真的不明白应该如何使用它,以及它是否可以帮助我实现我想要的效果。
好的谢谢你的信息。不知道连Oracle都不支持它。 我的应用程序使用一个允许支持不同DBMS的抽象层,所以我不能深入了解每个DBMS并在DDL上添加对完整事务的支持......即使它只是MySQL,也可能也是如此对我来说很复杂! – user276648 2010-06-02 09:52:08