select * from TABLE FOR UPDATE

select * from TABLE where id=1 FOR UPDATE

当一个用户发出select..for update的错作准备对返回的结果集进行修改时,如果结果集已经被另一个会话锁定,就是发生阻塞。需要等另一个会话结束之后才可继续执行。

可以通过发出 select… for update nowait的语句来避免发生阻塞,如果资源已经被另一个会话锁定,则会返回以下错误:Ora-00054:resource busy and acquire with nowait specified.

如何跳过被加行级锁的记录呢?

select * from TABLE for update skip locked;

你可能感兴趣的:(select * from TABLE FOR UPDATE)