insert into personalinsurancedate(personalid,insuranceid) select a.idcard,b.oid from personal a,insurance b where a.gongzhong=b.typeworkid and a.idcard=:new.idcard; personal 不能在对起进行查询 要先将内容取出后 用INSERT TABLE ——NAME VALUES(,,,,) 进行
可以将insert语句改为: insert into personalinsurancedate(personalid,insuranceid) select :new.idcard,b.oid from insurance b where b.typeworkid=:new.gongzhong ; 去掉对personal表的引用. 看看结果是否满足你的要求。
create or replace trigger update_company before update on personal for each row begin if :new.company<>:old.company then insert into personalinsurancedate(personalid,insuranceid) select a.idcard,b.oid from personal a,insurance b where a.gongzhong=b.typeworkid and a.idcard=:new.idcard; end if; end update_company;
personal 不能在对起进行查询
要先将内容取出后
用INSERT TABLE ——NAME
VALUES(,,,,)
进行
insert into personalinsurancedate(personalid,insuranceid)
select :new.idcard,b.oid from insurance b
where b.typeworkid=:new.gongzhong ;
去掉对personal表的引用. 看看结果是否满足你的要求。
before update on personal
for each row
begin
if :new.company<>:old.company
then
insert into personalinsurancedate(personalid,insuranceid) select a.idcard,b.oid from personal a,insurance b where a.gongzhong=b.typeworkid and a.idcard=:new.idcard;
end if;
end update_company;