CREATE OR REPLACE TRIGGER tabb_afttrig
AFTER INSERT OR DELETE
ON tabb
FOR EACH ROW
DECLARE
row_taba taba%rowtype;
BEGIN
IF INSERTING THEN
select * into row_taba from taba where taba.id=:new.id;
INSERT INTO tabc (person,fs)
SELECT :New.id,taba.f1+taba.f2+taba.f3 FROM dual;
IF SQL%ROWCOUNT<>1 OR SQL%ROWCOUNT IS NULL THEN
raise_application_error(-20101,'自已写');
END IF;
ELSE
DELETE FROM tabc WHERE person=:OLD.person;
IF UPDATIND THEN
INSERT INTO tabc (person,fs)
SELECT :New.id,taba.f1+taba.f2+taba.f3 FROM dual;
IF SQL%ROWCOUNT<>1 OR SQL%ROWCOUNT IS NULL THEN
raise_application_error(-20101,'自已写');
END IF;
END IF;
END IF;
END;--大致这样吧
AFTER INSERT OR DELETE
ON tabb
FOR EACH ROW
DECLARE
row_taba taba%rowtype;
BEGIN
IF INSERTING THEN
select * into row_taba from taba where taba.id=:new.id;
INSERT INTO tabc (person,fs)
SELECT :New.id,taba.f1+taba.f2+taba.f3 FROM dual;
IF SQL%ROWCOUNT<>1 OR SQL%ROWCOUNT IS NULL THEN
raise_application_error(-20101,'自已写');
END IF;
ELSE
DELETE FROM tabc WHERE person=:OLD.person;
IF UPDATIND THEN
INSERT INTO tabc (person,fs)
SELECT :New.id,taba.f1+taba.f2+taba.f3 FROM dual;
IF SQL%ROWCOUNT<>1 OR SQL%ROWCOUNT IS NULL THEN
raise_application_error(-20101,'自已写');
END IF;
END IF;
END IF;
END;--大致这样吧
解决方案 »
- 急,急,急!ORA-12547:TNS丢失联系
- 如何用btree 和 bitmap 来做统计
- 如何评估数据变化带来的影响
- 触发器的问题,几天没有搞定,求助高手
- 关于oracle数据库移植,数据仓库等的解决方案,高手请进。
- 各位oracle高手进来帮小弟看下呀谢谢了~~~~~~~~~~~
- 高手进来!!!一个关于主从表联合查询的问题!!!
- 这个是程序在向oracle数据库删除记录时出现的错误??看看是什么原因??
- 刚从网上下了一个oracle 9i,安装时提示插入磁盘1????不知道到那里去找磁盘1??
- 各位大虾帮帮忙,我现在很急,,我先谢谢各位了!!
- worry:oracle数据库之间可不可以实现实时数据同步?
- Client端不安裝Oracle要如何联结服务器
在IF UPDATIND THEN
也要加
before insert or update or delete on b
for each row
begin
if inserting then
insert into c (person,fs) select :new.person,f1+f2+f3 from a where id=:new.id;
elsif updating then
update c set fs=(select f1+f2+f3 from a where id=:old.id);
else
delete from c where person=:old.person;
end if;
end;
/