这个是记录触发器 记录表dz_hyzl所修改过得所有修改记录
请问怎么能实现循环 好多重复得IF判断和insert 操作create or replace trigger tri_DZ_HYZL_update
before update on dz_hyzl
for each row
declare
mdm varchar(30) := '005003';
begin
if :new.kmno != :old.kmno then
insert into modihis values(:new.bmdm,mdm,'kmno',:old.kmno,:new.kmno,sysdate,:new.xgry,:new.kmid);
end if;
if :new.name != :old.name then
insert into modihis values(:new.bmdm,mdm,'name',:old.name,:new.name,sysdate,:new.xgry,:new.kmid);
end if;
.........end tri_DZ_HYZL_update;
请问怎么能实现循环 好多重复得IF判断和insert 操作create or replace trigger tri_DZ_HYZL_update
before update on dz_hyzl
for each row
declare
mdm varchar(30) := '005003';
begin
if :new.kmno != :old.kmno then
insert into modihis values(:new.bmdm,mdm,'kmno',:old.kmno,:new.kmno,sysdate,:new.xgry,:new.kmid);
end if;
if :new.name != :old.name then
insert into modihis values(:new.bmdm,mdm,'name',:old.name,:new.name,sysdate,:new.xgry,:new.kmid);
end if;
.........end tri_DZ_HYZL_update;
insert into modihis values(:new.bmdm,mdm,'kmno',:old.kmno,:new.kmno,sysdate,:new.xgry,:new.kmid);
end if;
你要插入到modihis表中。
modihis 没有主键
before update on dz_hyzl
for each row
declare
mdm varchar(30) := '005003';
begin
if updating('kmno') then
insert into modihis values(:new.bmdm,mdm,'kmno',:old.kmno,:new.kmno,sysdate,:new.xgry,:new.kmid);
end if;
if updating('name') then
insert into modihis values(:new.bmdm,mdm,'name',:old.name,:new.name,sysdate,:new.xgry,:new.kmid);
end if;
...
end tri_DZ_HYZL_update;
你再把其他字段都写一遍,就OK了
insert into modihis values(:new.bmdm,mdm,'name',:old.name,:new.name,sysdate,:new.xgry,:new.kmid);
end if; 这段if判断插入