编写名为del_trigger的触发器,当删除DEPARTMENTS表中数据时,EMPLOYEES表中相应的数据也进行删除。
这个问题怎么写啊?

解决方案 »

  1.   

    CREATE OR REPLACE TRIGGER del_trigger
      BEFORE DELETE ON departments
      FOR EACH ROW
    BEGIN
      DELETE FROM employees t WHERE t.department_id = :new.department_id;
    END;
    /
      

  2.   

    其实可以设置外键删除为级连删除来实现,不一定要写触发器,如
    --删除原来的外键
    alter table hr.EMPLOYEES
      drop constraint EMP_DEPT_FK;
      
    --重新增加外键并设置级连删除
    alter table hr.EMPLOYEES
      add constraint EMP_DEPT_FK foreign key (DEPARTMENT_ID)
      references hr.DEPARTMENTS (DEPARTMENT_ID) on delete cascade;