本帖最后由 mycolorful 于 2011-07-08 14:11:44 编辑

解决方案 »

  1.   

    create or replace trigger test_AB
    after insert on A
    for each row
    declare num number :=0;
    begin
     select count(*) into num from B where name_id=:new.name_id and rownum=1);  
    IF NUM=0
    THEN
    insert into B values(:new.name_id, ':new.name_id - (:new.name_id)') ;
    COMMIT;
    end;
      

  2.   


    create or replace trigger test_AB
    after insert on A
    for each row
    begin
      merge into B
           using(select :new.name_id name_id from dual) t
              on(B.name_id = t.name_id)
        when not matched then
          insert into values(t.name_id,t.name_id||'-('||t.name_id||')');
    end;
    /