二个有外键关系的表,当删除主表一条记录时,级联删除子表的相关记录
希望各位能够给出一些PL/SQL的相关语句
谢谢!

解决方案 »

  1.   

    我将我写的详细的过程给lz讲下撒:
    (1)创建deptment表
    create table deptment(id varchar2(10) primary key,name varchar2(10)not null);
    (2)创建emp表,如下
    create table emp(eid varchar2(10),salary number(8,2),constraint fk_eid foreign key(eid)references deptment(id));
    (3)建立级联触发器,语句如下
    create or replace trigger del(这个是触发器的名字,可随便取撒)
    after delete on deptment 
    for each row   --这一行表示这是个行级触发器哦
    delete from emp where eid=:old.id;
    end del;
    /
    lz只要给deptment表和emp表先插入数据再创建这个触发器,然后写下面语句就可以知道这个触发器的功能了
    delete from deptment where id='001';(假设deptment和emp表都有id为001的数据)
    select * from emp;
    这个时候你会发现emp表中的eid='001'的数据也没了!!!
      

  2.   

    create or replace trigger del(这个是触发器的名字,可随便取撒)
    after delete on deptment  --------这里应该是beforefor each row --这一行表示这是个行级触发器哦
    delete from emp where eid=:old.id;
    end del;
      

  3.   

    create or replace trigger del(这个是触发器的名字,可随便取撒)
    after delete on deptment  --------这里应该是beforefor each row --这一行表示这是个行级触发器哦
    delete from emp where eid=:old.id;
    end del;
      

  4.   

    create or replace trigger del(这个是触发器的名字,可随便取撒)
    after delete on deptment --------这里应该是before
    for each row --这一行表示这是个行级触发器哦
    delete from emp where eid=:old.id;
    end del;