【发布时间】:2013-03-26 19:38:01
【问题描述】:
我想在同一张表上运行两个程序,一个使用出生日期,另一个更新取自第三张表的姓名和姓氏。
使用生日来更新年龄字段的那个会在整个表中运行,而更新名字和姓氏的那个只会根据键更新第三个表中出现的行。
所以我同时启动了两者并陷入僵局!有没有办法优先考虑它们中的任何一个?我阅读了nowait 并跳过锁定以进行更新,但是,我将如何返回跳过的内容?
希望你能帮我解决这个问题!
【问题讨论】:
-
你说的是死锁还是锁争用?优先排序无助于解决死锁
-
一些事情,1) 请阅读这个链接 - stackoverflow.com/questions/how-to-ask 。 2)请编辑您的问题以显示相关表的模式,以及您所指的相关(或全部)过程代码。我们不是读心术的人。如果您有两个不同的事务以不同的顺序对表进行更新,则通常会发生死锁。如果你有死锁,oracle 应该有一个跟踪显示导致死锁的原因。
-
为什么不在需要时即时计算年龄?这将消除对第一个 proc 的需求,并且年龄将始终是最新的。
-
对不起,伙计们,我从来没有问过这样的问题,我的一位同事使用了我的帐户,因为我没有打开我的会话,他遇到了问题,非常感谢你的回答,我会更新这个问题一旦我与他谈论解决方案,就会得到答案!
-
我认为这是一个很好的问题,也是我提出的第一个问题。它不是特定于模式的,这种类型的事情在很多情况下都会发生。而且它不是特定于数据库的。