ITPUB??ì3
12月微软Hyper-V虚拟化沙龙主题征集
ITPUB论坛 » Oracle开发 » 在删除触发器中如何去读其他数据

标题: 在删除触发器中如何去读其他数据
离线 coolsword
落叶飘零


精华贴数 4
个人空间 0
技术积分 3754 (390)
社区积分 2672 (501)
注册日期 2001-10-13
论坛徽章:5
行业板块每日发贴之星     
      

发表于 2002-1-21 14:49 
我刚才也遇到这个问题,经查问题不在于update,而是因为你对要删除记录的表进行了操作。例如查询操作。
select sum(jhcgje) into aa from t_cgjhmx where jhid=ld.jhid;

如果你的delete_trigger是建立在t_cgjhmx上,那么这句话就不能执行,因为系统把此表锁定了。


__________________
No Name
只看该作者    顶部
在线/呼叫 biti_rainy
人生就是如此



精华贴数 38
个人空间 0
技术积分 111199 (4)
社区积分 11832 (132)
注册日期 2001-12-12
论坛徽章:41
现任管理团队成员ITPUB长老会成员ITPUB元老年度论坛发贴之星年度论坛发贴之星ITPUB北京九华山庄2008年会纪念徽章
管理团队2007贡献徽章参与2007年甲骨文全球大会(中国上海)纪念ITPUB北京香山2007年会纪念徽章管理团队2006纪念徽章会员2007贡献徽章会员2006贡献徽章

发表于 2002-1-21 15:49 
hehe

所以你偷懒没有把trigger完整的写出来
大家只能猜测

我估计也可能是这样

要是trigger完整的写出来能看见是建立在哪个表上的,问题更容易定位一些

sigh


__________________
眼界决定边界,态度决定高度
blog:
人生就是如此
只看该作者    顶部
离线 zyhalj
中级会员



精华贴数 0
个人空间 0
技术积分 774 (2489)
社区积分 11 (10216)
注册日期 2002-1-17
论坛徽章:1
授权会员     
      

发表于 2002-1-21 18:12 
抱歉没有写清楚,让大家费心了

我的delete_trigger是建立在t_cgjhmx上。如果因为系统把此表锁定了那我还有什么别的办法实现
update t_cgjh set jhcgze=(select sum(jhcgje) from
t_cgjhmx where jhid=ld.jhid) where jhid=ld.jhid;



只看该作者    顶部
离线 Arrayzyhalj
中级会员



精华贴数 0
个人空间 0
技术积分 774 (2489)
社区积分 11 (10216)
注册日期 2002-1-17
论坛徽章:1
授权会员     
      

发表于 2002-1-21 21:55 
更正一下

抱歉没有写清楚,让大家费心了
我的delete_trigger是建立在t_cgjhmx上。其中t_cgjh表是主表,t_cgjhmx是从表,外键字段是jhid

如果因为系统把t_cgjhmx表锁定了那我还有什么别的办法实现
update t_cgjh set jhcgze=(select sum(jhcgje) from
t_cgjhmx where jhid=old.jhid) where jhid=old.jhid;


只看该作者    顶部
离线 coolsword
落叶飘零


精华贴数 4
个人空间 0
技术积分 3754 (390)
社区积分 2672 (501)
注册日期 2001-10-13
论坛徽章:5
行业板块每日发贴之星     
      

发表于 2002-1-21 22:31 
再建个语句级索引,两个索引一起用。具体参见《oracle8 pl/sql程序设计》机工社


__________________
No Name
只看该作者    顶部
离线 ericlma
中级会员



精华贴数 0
个人空间 0
技术积分 274 (7206)
社区积分 0 (49256)
注册日期 2001-11-16
论坛徽章:1
授权会员     
      

发表于 2002-1-21 23:36 
I guess coolsword meant "statement-level trigger", not "statement-level index".

You can also search the www.asktom.com website for answers.  Mutating table error is one of the more difficult errors to understand and solve in Oracle.  There is more info on this topic here.


只看该作者    顶部
离线 cactus
无药可救



精华贴数 0
个人空间 0
技术积分 758 (2540)
社区积分 1 (33175)
注册日期 2001-11-5
论坛徽章:1
授权会员     
      

发表于 2002-1-27 02:35 
这是典型的变化表引起的错误


__________________
本人优点:多情!本人缺点:自作多情!E_mail:cactus@itpub.netOICQ :7389650
只看该作者    顶部
相关内容


CopyRight 1999-2006 itpub.net All Right Reserved.
北京皓辰广域网络信息技术有限公司. 版权所有
E-mail:Webmaster@itpub.net
京ICP证:010037号 联系我们 法律顾问