如何回滚Oracle事务?

uqdfh47h  于 2023-04-20  发布在  Oracle
关注(0)|答案(1)|浏览(151)

我正在测试Oracle事务。
我有一张这样的table:

CREATE TABLE test (
    id int PRIMARY KEY,
    data varchar(255)
);
INSERT INTO test(id,data) VALUES(1,'apple');
INSERT INTO test(id,data) VALUES(2,'banana');
INSERT INTO test(id,data) VALUES(3,'cherry');
INSERT INTO test(id,data) VALUES(4,'date');

我想看看我是否可以用这个来做一个DELETE的试验:

--  Trial DELETE
    SET TRANSACTION READ WRITE;
    DELETE FROM test;
    SELECT * FROM test;
    ROLLBACK;

--  Original Data
    SELECT * FROM test;

好了,代码可以工作了,但是test表现在是空的,它似乎没有从ROLLBACK语句中受益。
这样做对吗?
我这里有一个小提琴:https://dbfiddle.uk/xxcVjl9A但我无法运行事务部分。

sxissh06

sxissh061#

你需要在插入后提交。然后你可以测试你的删除和回滚。目前你的回滚是回滚插入和删除。

相关问题