Oracle使用IN子句在查询中选择更新行为

时间:2018-08-30 10:12:04

标签: oracle locking

给出以下查询:

SELECT * FROM USER WHERE user_id in (10,20,30,40,50) FOR UPDATE

Oracle如何锁定所有这些行?是要一一锁定它们(在索引扫描过程中)还是Oracle会以某种方式同时锁定所有它们?

如果第二笔交易同时运行以下查询怎么办?

SELECT * FROM USER WHERE user_id = 50 FOR UPDATE

第二个事务是否有可能仅因为第一个事务尚未为该具体记录获得锁(由于一个锁一个接一个地连续行)而获得该记录的锁?

预先感谢

0 个答案:

没有答案