如果在结束前发生错误情况,我怎样才能重写我的事务以撤消更改?
我看到了这个问题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。
答案 0 :(得分:1)
执行ROLLBACK TRANSACTION
query,或在可用查询上使用ON CONFLICT ROLLBACK
conflict resolution让SQLite为您回滚交易。