sql - 如何在sql中撤消ROLLBACK?
问题描述
我正在学习 Oracle SQL,并且在执行DELETE
命令后我尝试执行ROLLBACK
. 问题是我第二次按错F9,ROLLBACK
又跑了。现在它已经INSERT
从表中删除了我的所有 s,我不知道如何才能将它们取回。
我尝试再次插入相同的查询,但PK
(主键)有问题。此外,我无法删除该表以重新开始,因为我有其他表FK
与该表一起使用(外键)。
解决方案
不幸的是,您无法撤消 a ROLLBACK
,就像您无法撤消 a 一样COMMIT
。这是设计使然。
当您这样做时会发生什么ROLLBACK
,直到该点之前所有未提交的更改都将丢失。ROLLBACK
如果您在两次调用之间不执行任何更改,则调用两次无效。
所以问题是:在运行你的之前你是你的COMMIT
吗?INSERT
DELETE
如果是:
ROLLBACK
刚刚恢复的DELETE
命令,你INSERT
的 s 不应该丢失如果否:
ROLLBACK
恢复的也是INSERT
s
ROLLBACK
在这两种情况下,您调用一次或两次都没有关系。