ROLLBACK ORACLE不起作用

时间:2014-07-16 15:40:36

标签: sql oracle transactions rollback

我是一个非常简约的脚本,不起作用。

SET TRANSACTION NAME 'anyname';
DELETE FROM V_RECHNUNG WHERE recno=207;
INSERT INTO V_RECHNUNG (recno) VALUES (207);
ROLLBACK;
SELECT * FROM V_RECHNUNG ORDER BY RECNO DESC;

我不明白为什么select语句会获得带有recno 207的条目。 在我看来,recno 207的条目根本不存在。

重要提示:我在运行此脚本之前检查了recno 207不存在。

是否有任何禁用事务的oracle服务器配置?

1 个答案:

答案 0 :(得分:1)

如果您的表已经准备就绪,在您完成任何插入或任何删除之前有recno 207的条目,那么它将是有意义的:)

考虑一下。

您已说出以下记录:

第1点: 204,205,206,207,208

第2点: 您发布了207的删除声明,因此,您将留下204,205,206,208

第3点: 您发出207的插入声明,因此,您将离开204,205,206,207,208

第4点:你发了一个回滚,它将带你回到第1点。也就是说:你从一开始就有207个。