emp2雇员表和dept2部门表,通过emp2表的外键deptno关联:
这个触发器主要想当删除部门时,级联删除emp2表中对应的记录;
create or replace trigger cascade_delete
before delete
on dept2 for each row
begin
  delete from emp2 where deptno=:old.deptno;
end;
上面写的触发器是在delete之前触发的,可以实现,因为在删除部门表的部门之前,
已经把emp2表中对应的记录删掉了,容易理解;
问题是当我把before改为after后,为什么还能正常运行,不太理解?

解决方案 »

  1.   

    怎么不能正常运行呢?我照着你的代码写了个Trigger,没问题呀。
    create or replace trigger tri_delete1
    after delete
    on scott.dept for each row
    begin
      delete from scott.emp where deptno=:old.deptno;
    end;从dept删除了deptno=10的数据后,emp里相应的数据也被删除的。
    +++++++++++++++
    你说不能正常运行,报什么错么?
      

  2.   

    before 和 after 只是说在事务级的处理是前还是后而已