我写了一堆删除语句并将它们包装在一个事务中:
start transaction;
delete a...
delete b...
delete c...
rollback;
我的想法是,我希望删除发生在一个事务中,该事务将在完成时回滚。如果步骤失败,我希望也可以回滚成功的步骤。
令我懊恼delete a
工作,删除了几千行delete b
失败,但当我重申这些陈述时, a 的所有记录似乎都消失了。< / p>
这是因为交易仍然开放吗?我试过了:
set session transaction isolation level read committed;
select a.*
并且返回零行,所以我认为情况并非如此。成功的a
删除是否已提交?如果是这样,我怎么能防止这种情况发生,直到我能保证完整的工作查询?