2016-02-25 257 views
-1

我有两个表,一个名为EMPLOYEE,第二个名为SQL Developer中的CURRENT_EMPLOYYE。在表插入创建Oracle触发器

EMPLOYEE表具有三个字段: ID(类型:编号,PK),FNAME(类型:VARCHAR2 50),DATE(类型:日期)

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

我想要做的是在表EMPLOYEE上创建一个触发器,以便在此表中插入一条记录时,插入表CURRENT_EMPLOYYE中。

有关如何这样做的任何帮助?

+1

http://stackoverflow.com/search?q=oracle+insert+trigger – kevinsky

回答

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; 

一个更好的选择是对员工表示员工状态的“状态”字段(如“C” =当前,“T” =终止,“X” =极端偏见终止:-)然后只是有CURRENT_EMPLOYEE是一个观点:

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

这样你就不会有重复的多个表上的员工数据的问题。

祝你好运。

+0

亲爱的,当我尝试在sql开发人员编辑器中创建脚本时,我得到一个弹出窗口来输入新的绑定。这是关于什么的? – mikeb

+0

我从来没有使用SQL Developer,所以我不能帮你。这听起来像一个单独的问题 - 我建议你发布它。 –

+0

我想通了,谢谢你的帮助 – mikeb