gpt4 book ai didi

oracle - Oracle:更新语句不等待/不失败

转载 作者:行者123 更新时间:2023-12-04 22:36:31 25 4
gpt4 key购买 nike

在多应用程序环境中,我有许多竞争性的更新语句。在当前的设计中,死锁是经常发生的。

如有必要,可以跳过除一个更新之外的所有更新,并在下一个时间间隔进行更新。

我可以将NOWAIT应用于更新语句吗?无法获得锁时,我的语句可以默默失败吗?我可以指定尝试获取锁定的时间长度吗?

最佳答案

不,您不能在update语句上指定NOWAIT-必须在SELECT FOR UPDATE语句上指定NOWAIT。

是的,您可以静默地使更新选择失败-如果您指定NOWAIT并处理生成的异常:

BEGIN
SELECT x FROM table FOR UPDATE NOWAIT;
EXCEPTION
WHEN OTHERS THEN
<handle exception>
END;

是的,可以指定等待时间。代替上面的示例中的NOWAIT,指定WAIT n ,其中 n 是等待锁定的秒数。如果您在那个时候无法获得锁,它将再次失败,并使用ORA-00054,您可以像以前一样处理它。

关于oracle - Oracle:更新语句不等待/不失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5545782/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com