写个触发器,当删除表中一条信息时同时删除另外一个表中ID号一样的信息

解决方案 »

  1.   

    for each rowdelete from 另外一个表 where ID号=:old.ID号;
      

  2.   

    create or replace trigger tr_delete
      after delete on table1
      for each row
    begin
      delete table2 
       where ID = :old.ID;
    end tr_delete;
      

  3.   

    Oracle 中是否有种约束可以避免,孤儿数据的出现呢?
      

  4.   

    create or replace trigger tr_delete 
      after delete on table1 
      for each row 
    begin 
      delete table2 
      where ID = :old.ID; 
    end tr_delete; 
      

  5.   

    create or replace trigger tr_delete 
      after delete on table1 
      for each row 
    begin 
      delete table2 
      where ID = :old.ID; 
    end tr_delete;
      

  6.   

    最简单的外键约束 on delete可以参考 http://blog.csdn.net/lakenchen/archive/2009/06/29/4306216.aspx
      

  7.   

    SQL> create table t1(
      2    id number(10) not null,
      3    name varchar2(3)
      4  );
     
    Table created
     
    SQL> create table t2(
      2    id number(10) not null,
      3    name varchar2(3)
      4  );
     
    Table created
    SQL> insert into t1(id,name)
      2    select 100,'aaa' from dual union all
      3    select 101,'bbb' from dual union all
      4    select 102,'ccc' from dual union all
      5    select 103,'ddd' from dual union all
      6    select 104,'eee' from dual
      7  /
     
    5 rows inserted
     
    SQL> 
    SQL> insert into t2(id,name)
      2    select 100,'aaa' from dual union all
      3    select 101,'bbb' from dual union all
      4    select 102,'ccc' from dual union all
      5    select 103,'ddd' from dual union all
      6    select 104,'eee' from dual
      7  /
     
    5 rows inserted
     
    SQL> select * from t1;
     
             ID NAME
    ----------- ----
            100 aaa
            101 bbb
            102 ccc
            103 ddd
            104 eee
     
    SQL> select * from t2;
     
             ID NAME
    ----------- ----
            100 aaa
            101 bbb
            102 ccc
            103 ddd
            104 eeeSQL>   create or replace trigger trigger_delete
      2     after delete on t1
      3     for each row
      4     begin
      5          dbms_output.put_line(:old.id);
      6          delete t2 where id=:old.id;
      7    end trigger_delete;
      8  /
     
    Trigger createdSQL> delete t1 where id = 100;
    1 row deletedSQL> select * from t1;
     
             ID NAME
    ----------- ----
            101 bbb
            102 ccc
            103 ddd
            104 eee
     
    SQL> select * from t2;
     
             ID NAME
    ----------- ----
            101 bbb
            102 ccc
            103 ddd
            104 eee