try:
drop table A;
drop table B;
create table A(a1 number(3),a2 number(3));
create table B(a1 number(3),a2 number(3));CREATE OR REPLACE TRIGGER UnionData AFTER
INSERT OR UPDATE OR DELETE ON A 
for each row 
BEGIN 
if updating then
  update b set a1=:new.a1,a2=:new.a2 where a1=:old.a1; 
elsif inserting then
  insert into b (select a1,a2 from a where a1=:new.a1);
else
  delete from b where b.a1=:old.a1;
end if;
END;

解决方案 »

  1.   

    drop table A;
    drop table B;
    create table A(a1 number(3),a2 number(3));
    create table B(a1 number(3),a2 number(3));CREATE OR REPLACE TRIGGER UnionData AFTER
    INSERT OR UPDATE OR DELETE ON A 
    for each row  -- 添加
    BEGIN 
    if updating then
      update b set a1=:new.a1,a2=:new.a2 where a1=:old.a1; --修正
    elsif inserting then
      insert into b values(:new.a1,:new.a2); --修正
    else
      delete from b where b.a1=:old.a1;
    end if;
    END;