有两张表,A 跟B A表有字段 ID AID NAME VALUE (表中有重复的AID) B表有字段 AID NAME VALUE (表中没有重复的AID) 想得到这样一个功能.. A表插每个数据..对应的B表做一个update操作 使得每个B表中的AID对应的数据是A表中AID的最新数据 意思就是A表插入每一条数据..对应AID中的B表就update一下..便B表的AID保持最新的数据
create or replace trigger tri_a
after insert on A FOR EACH ROW
declare
v_aid integer;
begin
select count(b.aid) into v_aid from b where b.aid=:new.aid;
if v_aid >=1 then
update B
set (name,value)=(:new.name,:new.value);
where b.aid=:new.aid;
else
insert into b values(:new.aid,:new.name,:new.value);
end if;
end;
[Quote=引用 1 楼 wangrui4917 的回复:]
create or replace trigger tri_a
after insert on A
declare
v_aid integer;
begin
select count(b.aid) into v_aid from b where b.aid=:new.aid;
if v_aid >=1 then
update B
set (name,value)=(:new.name,:new.value);
where b.aid=:new.aid;
else
insert into b values(:new.aid,:new.name,:new.value);
end if;
end;
[/Quote]
顶这个,考虑的比较全面。
create or replace trigger tri_a
after insert on A
declare
v_aid integer;
begin
select count(b.aid) into v_aid from b where b.aid=:new.aid;
if v_aid >=1 then
update B
set (name,value)=(:new.name,:new.value);
where b.aid=:new.aid;
else
insert into b values(:new.aid,:new.name,:new.value);
end if;
end;