2014-12-23 54 views
0

我学习SQL和考试准备的问题有一个用户会话,像这样:说明为什么以下SQL ROLLBACK命令会导致错误?

CREATE TABLE product (pcode NUMBER(2), pname VARCHAR2(10)); 
INSERT INTO product VALUES (1, 'pen'); 
INSERT INTO product VALUES (2, 'pencil'); 
SAVEPOINT a; 
UPDATE product SET pcode = 10 WHERE pcode = 1; 
SAVEPOINT b; 
DELETE FROM product WHERE pcode = 2; 
COMMIT; 
SQL> DELETE FROM product WHERE pcode = 10; 

以上之后,我们运行这个命令:

ROLLBACK TO SAVEPOINT a 

根据测试-guide ,这会产生一个错误;也 - 没有SQL语句回滚。

这是为什么?

+0

其中是回滚命令?也是 - 这是预言吗? – benji

+0

@benji - 谢谢,添加了一个缺失的细节 – Coffee

回答

1

由于您运行的是commit命令,会发生什么情况是您之前的savepoint已被擦除,并且无法回滚到您的保存点。

尝试删除提交并重新运行脚本。

相关问题