sql - 在 oracle 中使用 for update nowait 选择最大值
问题描述
我尝试在 oracle 中使用“for update nowait”选择最大值,如下所示:
SELECT MAX(ID) FROM USERS
FOR UPDATE NOWAIT;
我收到以下错误:
不允许对此查询表达式进行 FOR UPDATE
我需要获得带锁的最大 id 来处理并发问题,有什么方法可以做到这一点?
解决方案
语法选择。. . for update 锁定表中的记录以准备更新。当您进行聚合时,结果集不再引用原始行。
换句话说,数据库中没有要更新的记录。只有一个临时结果集。
推荐阅读
- node.js - Nodejs脚本中的Highcharts导出模块
- linux - 为什么在 ARM 上预取更多数据时会发生更多缓存未命中?
- r - 是否有将值从一列划分到另一列的每个(!)值的功能?在 R 中
- c# - 尝试在数据库中建立关系时“对象引用未设置为对象的实例”
- arrays - C中结构内的动态二维数组
- google-apps-script - Google 表格应用脚本:有条件的隐藏或显示列
- java - 将字符串转换为 HashMap
- c++ - Visual Studio / Qt - 无法打开源文件“QApplication”
- python - 在python中声明二维数组的语法之间的区别
- python - 字典或替代品中的自我参考