sql - Oracle 相当于 ROWLOCK、UPDLOCK、READPAST 查询提示

标签 sql oracle locking

在 SQL Server 中,我在查询中使用了以下提示:

  • rowlock(行级锁定)
  • updlock(防止脏读)
  • readpast(不要阻塞等待行锁,转到第一个解锁的行)

例如

select top 1 data from tablez with (rowlock,updlock,readpast);

Oracle 是否有等效的查询内提示?

最佳答案

ROWLOCK 等效的是FOR UPDATE 子句

select *
from emp
for update;

自 11g 起,Oracle 已记录了 SKIP LOCKED 语法,该语法相当于 READPAST:

select *
from emp
for update skip locked;

这种语法已经工作了很长时间(它是高级队列的基础),但如果它不在文档中,则不受支持,

没有与 UPDLOCK 锁等效的锁,因为 Oracle 完全不允许脏读。了解更多。

关于sql - Oracle 相当于 ROWLOCK、UPDLOCK、READPAST 查询提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3938677/

相关文章:

java - RuleBasedCollat​​or 中的监控锁?

php - 从php中选择数据时,MySQL表被锁定多长时间?

php - 广告系统提示

MySQL 解决错误 1093

sql - 如何使 CREATE OR REPLACE VIEW 在 SQL Server 中工作?

c# - 在 C# 中将 OracleDecimal 转换为 System.Double

sql - MERGE表,匹配时不执行任何操作

oracle - 查看包含 XML 格式文本的 BLOB 数据

mysql - 当有两个或多个进程同时请求它时,数据库如何决定它应该给哪个进程锁定?

mysql - sql/presto 另一列的百分比计算