【发布时间】:2011-04-25 17:14:21
【问题描述】:
在 SQL Server 中,我在查询中使用了以下提示:
- rowlock(行级锁定)
- updlock(防止脏读)
- readpast(不要阻塞等待行锁,转到第一个解锁的行)
例如
select top 1 data from tablez with (rowlock,updlock,readpast);
Oracle 是否有等效的查询内提示?
【问题讨论】:
在 SQL Server 中,我在查询中使用了以下提示:
例如
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 flat out 不允许脏读。了解更多。
【讨论】: