oracle触发器问题

悍M 2015-06-08 09:39:20
area表,举两个字段,一个为fldid(主键),另一个为fldareaid,在我插入一条数据时,更新fldareaid字段和刚插入的fldid字段相等,但是update无效

update area SET FLDAREAID=:NEW.FLDID where FLDID=:new.FLDID;
...全文
136 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangchangming 2015-06-09
  • 打赏
  • 举报
回复
引用 楼主 u013850857 的回复:
area表,举两个字段,一个为fldid(主键),另一个为fldareaid,在我插入一条数据时,更新fldareaid字段和刚插入的fldid字段相等,但是update无效 update area SET FLDAREAID=:NEW.FLDID where FLDID=:new.FLDID;
如果需求是这样的话,又何必弄触发器,在insert语句直接赋值过去
chengccy 2015-06-09
  • 打赏
  • 举报
回复
从楼主的意思,可以看出这个的触发器是行级的, 这种触发器是不允许读写自己的,避免无限触发; 可以这样写:
create or replace trigger TRI_area
  before insert on area  
  for each row
begin
  :NEW.FLDAREAID:=:NEW.FLDID;
end TRI_area;
binsweet 2015-06-09
  • 打赏
  • 举报
回复
没说清,是area表上的触发器吗? 另外确定这条数据存在 update area SET FLDAREAID=:NEW.FLDID where FLDID=:new.FLDID; 也有可能你的意图是 update area SET FLDAREAID=:NEW.FLDID where FLDID=:old.FLDID;
悍M 2015-06-08
  • 打赏
  • 举报
回复
在线等了~~

17,082

社区成员

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

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