提交后Sqlite回滚

提交后Sqlite回滚,sqlite,commit,rollback,Sqlite,Commit,Rollback,在Sqlite3中,提交事务后是否有方法回滚到某个点? 如果你不知道为什么我会提交一个声明,如果我不确定,原因是我使用C++内部的SQLite,如果我提交事务,它只保存到文件。< /P> < P>在启动事务之前复制数据库。要进行复制,我建议使用sqlite3\u backup\*()函数系列,因为它们保证操作是原子的 如果您有一个大数据库,并且只想使用一个表(这是一个棘手的“回滚”),那么您应该将该表保存在一个单独的数据库中,并在使用时附加它,这样您就可以只使用一个表备份数据库。不,没有。当然,

在Sqlite3中,提交事务后是否有方法回滚到某个点?
如果你不知道为什么我会提交一个声明,如果我不确定,原因是我使用C++内部的SQLite,如果我提交事务,它只保存到文件。< /P> < P>在启动事务之前复制数据库。要进行复制,我建议使用
sqlite3\u backup\*()
函数系列,因为它们保证操作是原子的


如果您有一个大数据库,并且只想使用一个表(这是一个棘手的“回滚”),那么您应该将该表保存在一个单独的数据库中,并在使用时附加它,这样您就可以只使用一个表备份数据库。

不,没有。当然,它只在您提交事务时保存;提交就是保存您刚刚编写的数据。谢谢@ColonelThirtyTwo。正如您可能猜到的,我的目的是用另一个代码测试我的数据库。因此,工作流程是:(i)更新数据库。(ii)在另一个环境中进行测试。(iii)如果未通过,则撤销。在这方面,我认为最好的解决方案是在我更改db文件之前复制它,并在测试失败时使用它替换更新的db文件。有更好的主意吗?您可以将嵌套事务与
保存点
发布
()一起使用。@Googie,提交事务也会禁用保存点。@emre,在处理嵌套事务时,应该避免使用
BEGIN
COMMIT
并完全切换到
保存点
/
RELEASE