触发器执行问题

wt12581258 2008-10-29 09:38:10
这个是记录触发器 记录表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;
...全文
71 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
范佩西_11 2008-10-29
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 wt12581258 的回复:]
我是想要用循环替换重复得

if updating('name') then
insert into modihis values(:new.bmdm,mdm,'name',:old.name,:new.name,sysdate,:new.xgry,:new.kmid);
end if;

这段if判断插入


[/Quote]什么意思,循环,你字段都不一样怎么循环阿。
wt12581258 2008-10-29
  • 打赏
  • 举报
回复
我是想要用循环替换重复得

if updating('name') then
insert into modihis values(:new.bmdm,mdm,'name',:old.name,:new.name,sysdate,:new.xgry,:new.kmid);
end if;

这段if判断插入

范佩西_11 2008-10-29
  • 打赏
  • 举报
回复
create or replace trigger tri_DZ_HYZL_update
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了
wt12581258 2008-10-29
  • 打赏
  • 举报
回复
modihis 表全是字符串字段
wt12581258 2008-10-29
  • 打赏
  • 举报
回复
dz_hyzl 不管主建
modihis 没有主键
范佩西_11 2008-10-29
  • 打赏
  • 举报
回复
dz_hyzl所有的字段类型相同的吗。如果不是要转化为同一类型。
你要插入到modihis表中。
Andy__Huang 2008-10-29
  • 打赏
  • 举报
回复
你的表没有主键吗?
hongqi162 2008-10-29
  • 打赏
  • 举报
回复
if updating('kmno') then 
insert into modihis values(:new.bmdm,mdm,'kmno',:old.kmno,:new.kmno,sysdate,:new.xgry,:new.kmid);
end if;

17,140

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧