我想锁定表中的一条记录。 该记录被指定为“ID 大于...的下一个”
CREATE TABLE test (id number);
SELECT id
FROM (SELECT id
FROM test
WHERE id > 10
ORDER BY id)
WHERE ROWNUM = 1
FOR UPDATE;
这看起来很直观也很容易。但事实并非如此。有什么想法吗?
附言
我确实需要现有查询保持不变,因为它是一个游标,并且有几个地方使用了这个游标的 %rowtype。
最佳答案
我想你会需要这样的东西:
SELECT id
FROM test
WHERE id =
(SELECT MIN(id)
FROM test
WHERE id > 10)
FOR UPDATE;
关于oracle - 如何解决 ORA-02014 : cannot select FOR UPDATE from view with DISTINCT, GROUP BY 等问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3166615/