假设有A、B两张数据表,两表中都有一个唯一的NAME字段,A表中NAME与B表中NAME是一对多关系。我想做一个触发器,实现当A表中记录被删除时,同时删除B表中NAME对应的记录,求解~

解决方案 »

  1.   

    这个还是比较简单的. create or replace trigger trigger_name
        before delete on table_A
        for each row 
    begin 
        delete from table_B where name =:old.name;
    end ;
      

  2.   

    不行啊,提示:索引中丢失IN或OUT参数::1 
      

  3.   

    为什么不用foreign key自动删除
    T@ORA>CREATE TABLE C(A INT  REFERENCES P(A) ON DELETE CASCADE);Table created.Elapsed: 00:00:00.03
    T@ORA>SELECT * FROM P;         A
    ----------
             1Elapsed: 00:00:00.06
    T@ORA>SELECT * FROM C;no rows selectedElapsed: 00:00:00.03
    T@ORA>INSERT INTO C VALUES(1);1 row created.Elapsed: 00:00:00.00
    T@ORA>DELETE FROM P;1 row deleted.Elapsed: 00:00:00.01
    T@ORA>SELECT * FROM C;no rows selectedElapsed: 00:00:00.00
    T@ORA>
      

  4.   

    外键的级联删除就可以on delete cascade