求救一简单触发器:表A中插入或更新一个条记录时根据表A与表B中关联字段更新表B中相应的字段。

saintKnight 2003-09-13 08:34:31
表A
F1 F2
表B
F1 F2
写的触发器如下,执行时报错:
CREATE OR REPLACE TRIGGER trgiName
BEFORE INSERT OR UPDATE
OF tableA.F2
ON tableA
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
begin
IF INSERTING THEN
update tableB
set tableB.F2=:NEW.F2
where tableB.F1= :NEW.F1;
ELSE
update tableB
set tableB.F2=:NEW.F2
where tableB.F1= :OLD.F1;
end;

...全文
71 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
beckhambobo 2003-09-13
  • 打赏
  • 举报
回复
CREATE OR REPLACE TRIGGER trgiName
BEFORE INSERT OR UPDATE
OF tableA.F2
ON tableA
FOR EACH ROW
begin
IF INSERTING THEN
update tableB
set tableB.F2=:NEW.F2
where tableB.F1= :NEW.F1;
ELSE
update tableB
set tableB.F2=:NEW.F2
where tableB.F1= :OLD.F1;
end if;
end;
/
saintKnight 2003-09-13
  • 打赏
  • 举报
回复
我也试过将Before改为After,也不行,总是提示“出现;符号在需要下列情况之一时:if”
saintKnight 2003-09-13
  • 打赏
  • 举报
回复
我的触发器中也有“/”,漏写了,但也不行!
armu80830 2003-09-13
  • 打赏
  • 举报
回复
CREATE OR REPLACE TRIGGER trgiName
AFTER INSERT OR UPDATE
OF tableA.F2
ON tableA
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
begin
IF INSERTING THEN
update tableB
set F2=:NEW.F2
where F1= :NEW.F1;
ELSE
update tableB
set F2=:NEW.F2
where F1= :OLD.F1;
end;
/

17,086

社区成员

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

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