Postgres SELECT for update语法仅提供在无法立即获得锁定的情况下不等待的选项。参见postgres文档。
为防止该操作等待其他事务提交,请使用NOWAIT选项。使用NOWAIT,如果无法立即锁定选定的行,该语句将报告错误,而不是等待。注意,NOWAIT仅适用于行级锁-
所需的ROW SHARE表级锁仍以常规方式获取(请参见第13章)。如果需要不等待就获取表级锁,则可以先将LOCK与NOWAIT选项一起使用。
当我使用postgres时,我已经观察到超时超过0的任何值都会导致hibernate状态,
SELECT FORUPDATE但是当超时为0时就会发出hibernate状态
SELECT FOR UPDATE NO WAIT



