在表插入上创建Oracle触发器

时间:2016-02-25 20:08:59

标签: oracle plsql triggers

我有两个表,一个叫做EMPLOYEE,第二个叫做SQL Developer中的CURRENT_EMPLOYYE。

表EMPLOYEE有三个字段: ID(类型:数字,PK),FNAME(类型:varchar2 50),DATE(类型:日期)

表CURRENT_EMPLOYYE有三个字段: ID(类型:数字,PK),FNAME(类型:varchar2 50),DATE(类型:日期)

我要做的是在表EMPLOYEE上创建一个触发器,这样当在该表中插入一条记录时,它就会被插入到表CURRENT_EMPLOYYE中。

有关如何操作的任何帮助?

1 个答案:

答案 0 :(得分:3)

一般来说,你似乎想要的是

CREATE OR REPLACE TRIGGER EMPLOYEE_AI
  AFTER INSERT ON EMPLOYEE
  FOR EACH ROW
BEGIN
  INSERT INTO CURRENT_EMPLOYEE
    (ID, FNAME, DATE)
  VALUES
    (:NEW.ID, :NEW.FNAME, :NEW.DATE);
END EMPLOYEE_AI;

更好的选择是在EMPLOYEE上有一个'STATUS'字段,表明员工的状态(例如'C'=当前,'T'=终止,'X'=以极端偏见终止:-)然后只需将CURRENT_EMPLOYEE视为一个视图:

CREATE OR REPLACE VIEW CURRENT_EMPLOYEE AS
  SELECT *
    FROM EMPLOYEE
    WHERE STATUS = 'C'

这样您就不会遇到将员工数据复制到多个表上的问题。

祝你好运。