这是oracle 10g。如果我在sqlplus中对表发出update命令,但没有提交,那么在另一个会话中更新同一行并尝试提交时,它就会挂起,直到我提交第一个行。我知道有些人会认为这是锁定机制,但我们的应用程序做了同样的事情,用户正在被阻止。
避免这个问题的最好方法是什么?
发布于 2010-02-03 11:21:52
你可以使用NOWAIT选项发布一个锁,而不是仅仅尝试更新,例如
SELECT * FROM mytable
WHERE xxx
FOR UPDATE NOWAIT;如果该行被其他用户锁定,Oracle将立即引发ORA-00054: resource busy and acquire with NOWAIT specified。
https://stackoverflow.com/questions/2189178
复制相似问题