我写了一个触发器如下:
create or replace trigger T_GS_UPDATE
after updateon qyxx_gs
for each row
declare
-- local variables here
begin
if :new.status=10 and :new.GSJGBM_GS=
ld.GSJGBM_GS then
insert into QYXX_GS_LOG(ID,YYZZZCH_GS,ZZJGDM_GS,QYMC_GS,FDDBR_GS,FDDBRSFZJH_GS,GDRS_GS,ZCDZ_GS,JYFW_GS,HYBM_GS,QYLXBM_GS,ZCZB_GS,ZCZBBZBM_GS,CLRQ_GS,YYZZFZRQ_GS,YYQXZZRQ_GS,GSJGBM_GS,BGSX_GS,BGHNR_GS,BGHZRQ_GS,NJRQ_GS,NJJG_GS,ZXSY_GS,ZXRQ_GS,ZXJG_GS,DXYY_GS,DXRQ_GS,QY_STATUS,MSG_ID,MSG_OP,MSG_DATE,ZCZBZF_GS,ZCZBWF_GS,STATUS,MSG_STATUS)
Values(
ld.ID,
ld.YYZZZCH_GS,
ld.ZZJGDM_GS,
ld.QYMC_GS,
ld.FDDBR_GS,
ld.FDDBRSFZJH_GS,
ld.GDRS_GS,
ld.ZCDZ_GS,
ld.JYFW_GS,:old.HYBM_GS,:old.QYLXBM_GS,:old.ZCZB_GS,:old.ZCZBBZBM_GS,:old.CLRQ_GS,:old.YYZZFZRQ_GS,:old.YYQXZZRQ_GS,:old.GSJGBM_GS,:old.BGSX_GS,:old.BGHNR_GS,:old.BGHZRQ_GS,:old.NJRQ_GS,:old.NJJG_GS,:old.ZXSY_GS,:old.ZXRQ_GS,:old.ZXJG_GS,:old.DXYY_GS,:old.DXRQ_GS,:old.QY_STATUS,:old.MSG_ID,:old.MSG_OP,:old.MSG_DATE,:old.ZCZBZF_GS,:old.ZCZBWF_GS,:old.STATUS,:old.MSG_STATUS);
end if;
end T_GS_UPDATE;
我在条件里增加加了一个and :new.NJJG_GS= :old.NJJG_GS ,就不能触发了,真的不明白什么原因,请大家指教一下。其实我写的这个东西的目的是在一个表的某些栏位发生变化时,不能触发,换句说,在这个表做update时,条件是我指定的那个几个栏位不变化时才能触发这个trigger.不知哪位大侠有什么好的办法。
|