我正在尝试了解事务在 DB 中的工作方式,为此我编写了以下测试 SQL:
SAVEPOINT STOP_HERE ON ROLLBACK RETAIN CURSORS;
INSERT INTO TESTSCHEMA."test" (ID, NAME) VALUES (89898, 'SDFASDFASD');
ROLLBACK TO SAVEPOINT STOP_HERE;
SELECT * FROM TESTSCHEMA."test";
执行此代码后,将一行添加到表中。但是,如果我在开头添加以下行:
SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
一切都按我的预期工作,即事务正确回滚并且数据库中没有新条目,但是如果我再次运行此代码,Data Studio 会在第一行显示错误:
[SQL0428] SQL statement can not be launched.
所以我的问题是:有没有办法获得当前的隔离级别,为什么我不能设置隔离级别超过 1 次?
我将非常感谢所有答案和链接。
PS。我正在使用 DB2/iSeries V5R4。
聚苯乙烯。对不起,我的英语不好