oracle触发器加判断条件,oracle触发器where条件失效

Create Or Replace Trigger Hvm_cfg_normalUpdateAfter

after insert or update or delete

on hvm_cfg_normal

for each row

declare

deviceNum number; --判断装置表(device)中是否存在监测装置的个数

begin

if inserting then --新增

insert into test values('','','',:new.objid);

update Hvm_ObjAllSts o set o.devexist=1 where o.sbbm=:new.objid;

elsif deleting then --删除

select count(0) into deviceNum from Hvm_ObjAllSts o where o.sbbm=:old.objid;

if deviceNum<0 then

update Hvm_ObjAllSts o set o.devexist=0 where o.sbbm=:old.objid;

end if;

elsif updating then

select count(0) into deviceNum from Hvm_ObjAllSts o where o.sbbm=:old.objid;

if :old.objid!=:new.objid and deviceNum<0 then

update Hvm_ObjAllSts o set o.devexist=0 where o.sbbm=:old.objid;

update Hvm_ObjAllSts o set o.devexist=1 where o.sbbm=:new.objid;

end if;

end if;

end;

这个是我的触发器,当hvm_cfg_normal表有新增的时候 修改 表Hvm_ObjAllSts 的字段devexist为1。不能修改

insert into test values('','','',:new.objid);

这个语句测试时候得到了objid,当我新增一条记录时在test表中却是看到了这个objid,但是

update Hvm_ObjAllSts o set o.devexist=1 where o.sbbm=:new.objid;

这个语句不能修改Hvm_ObjAllSts表中的devexist。大家帮我看看是什么原因了。谢谢各位了……

作者: snjcaorui

发布时间: 2011-08-11

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值