在发生故障时回滚SQLite事务操作

时间:2016-01-05 15:22:45

标签: sqlite transactions

如果在结束前发生错误情况,我怎样才能重写我的事务以撤消更改?

我看到了这个问题has already been asked,我按照该答案中提供的链接进行了操作。我不清楚下一步是什么。我希望有人可以通过应用于此事务的示例来说明解决方案:

BEGIN TRANSACTION;
INSERT INTO Employee(ID, Name) VALUES(1, 'John');
...
<some failure happens here>
...
END TRANSACTION;

在这种情况下,我希望撤消Employee表中的插入,因为在END TRANSACTION之前发生了故障。如何编写强制执行此规则的规则?这适用于sqlite版本3.9.2。

1 个答案:

答案 0 :(得分:1)

执行ROLLBACK TRANSACTION query,或在可用查询上使用ON CONFLICT ROLLBACK conflict resolution让SQLite为您回滚交易。