我正在尝试创建一个触发器,当将记录插入员工表(新员工)时,触发器会触发并将记录作为“N/A”插入到employee_dept_history 表中(因为该员工是新员工)并且没有以前的部门)。此外,如果当前员工切换部门,则触发器应在 employee_dept_history 表中插入一条记录,并且员工 depatment_id 会更改。我在创建此触发器时遇到问题。我想知道是否有人可以用我的代码引导我走向正确的方向。我无法让下面的触发器显示“N/A”。我怎样才能使这个触发器工作?我需要为新旧部门创建局部变量吗?
CREATE OR REPLACE TRIGGER employee_dept_trigger
BEFORE INSERT OR UPDATE ON employee
FOR EACH ROW
BEGIN
INSERT INTO employee_dept_history
VALUES(:NEW.employee_id,
:NEW.employee_name,
from_department_name (NEEDS TO OUTPUT 'N/A'),
to_department_name,
sysdate);
END employee_dept_trigger;
EMPLOYEE_DEPT_HISTORY 表如下所示:
CREATE TABLE empployee_dept_history
(
EMPLOYEE_ID NUMBER(4)
EMPLOYEE_NAME VARCHAR2(50)
FROM_DEPARTMENT_NAME VARCHAR2(50)
TO_DEPARTMENT_NAME VARCHAR2(50)
OPERATION_TIME DATE
);
员工表:
(
EMPLOYEE_ID NUMBER(4)
EMPLOYEE_NAME VARCHAR2(20)
JOB VARCHAR2(50)
MANAGER_ID NUMBER(4)
HIRE_DATE DATE
SALARY NUMBER(9)
COMMISION NUMBER(9)
DEPARTMENT_ID NUMBER(4)
);