有这样一个问题,有一张表:EMP,其中有个字段是deptid关联DEPT表中的id。现有要求:删除部门id=1,并同时删除EMP表中部门1的数据。能否用一条delete实现呢。
    用2条的话我自己也会。delete from dept where id='1';
                         delete from emp where deptid='1';

解决方案 »

  1.   

    做个触发器create or replace trigger deletetri
    after delete on dept
    for each row
    begin
    delete emp where deptno=:old.deptno;
    end;
      

  2.   

    不用触发器之类的,直接写SQL呢。
      

  3.   

    你在数据库中设置外键级联删除就可以一条SQL 不能同时删除两张表中的数据 
      

  4.   

    --首先删除你emp表对dept表的参照关系,假定参照名为fk_emp_dept
    alter table emp 
    drop constraint fk_emp_dpet;
    --接下来重新建议参照关系
    alter table emp
    add constraint fk_emp_dept
    foreign key(deptid) references dept(id)
    on delete cascade;   --这句用于实现级联删除
      

  5.   

    在数据库中设置对应的外键关联、、就可以了、、另外如果是程序的话用hibernate也可以实现级联删除、添加之类的东东、、
    如果不想设置关联,那就只好写触发器了、、
      

  6.   

    其实这是我上次碰到的一个面试题,而我也只是想知道可以不可以写SQL直接删2个表中的数据的,既然这么多高手都肯定一个SQL不能删除2个的话,呢就是肯定不能了。