首页 > 解决方案 > 在 oracle 中使用 for update nowait 选择最大值

问题描述

我尝试在 oracle 中使用“for update nowait”选择最大值,如下所示:

SELECT MAX(ID) FROM USERS
  FOR UPDATE NOWAIT;

我收到以下错误:

不允许对此查询表达式进行 FOR UPDATE

我需要获得带锁的最大 id 来处理并发问题,有什么方法可以做到这一点?

标签: sqloracleoracle12c

解决方案


语法选择。. . for update 锁定表中的记录以准备更新。当您进行聚合时,结果集不再引用原始行。

换句话说,数据库中没有要更新的记录。只有一个临时结果集。


推荐阅读