我可以在SQLite事务提交后回滚吗?

4

在SQLite中,是否有一种方法可以在提交后撤销最新的事务?

我想要将数据库恢复到事务或保存点之前的状态。我已经查看了回滚命令,但它似乎仅限于回滚挂起的事务。

编辑 我能否创建一个名为“Undo”的保存点,并在开始下一个操作之前等待释放它,或者如果需要撤消它,则回滚?

3个回答

2

结果证明我不是,但如果我是的话,保存点可能对我有用。 - CodeFusionMobile

1

除了在交易之前进行在线备份外,我不知道它是否支持“时间机器”来倒退时间。

你不能设置一些应用逻辑来记录足够的信息以便在审计跟踪表中撤销已应用的操作吗?


0

我不是SQLite专家,但据我所知,只有在事务内部才能制作保存点,而不能反过来。

据我所知,在阅读在线文档时,保存点和事务本质上是相同的,区别在于保存点写入的事务堆栈。您可以打开一定数量的保存点(记住堆栈顺序),并在检查后进行事务提交。我不知道这是否会对您有所帮助。


“只有在事务内部才能创建保存点” - 我认为这不正确。我刚刚尝试了SQLite 3.8.7.4的shell命令。它成功地撤销了一个表的创建和行删除,而这些操作都是在事务之外进行的。 - WindRider

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接