【发布时间】:2011-02-26 16:37:44
【问题描述】:
我希望我的程序能够安装插件,并在发生错误时回滚所做的所有更改。所以我创建了一个事务来保存安装插件时添加的所有内容。问题是插件可能想要创建表,这样做会自动提交 MySQL 中的当前事务。
请参阅 MySQL 网站上的Statements That Cause an Implicit Commit。
知道我该怎么做吗?
我考虑过使用临时表,因为它们不会自动提交,除非它们使用太多内存,但看起来临时表无论如何都无法回滚(而且我还没有找到将它们转换为永久表的方法)。
我刚刚发现了“save points”,但我真的不明白应该如何/何时使用它,也不知道它是否能帮助我实现我想要的。
【问题讨论】:
标签: mysql transactions commit