1
我想在新工作表员工中创建触发器注册表,并将薪水提高到5000以上,并且迄今为止薪水未超过5000。SQL触发器 - 在IF条件下嵌套INSERT INTO
我写的触发器返回错误Error(2,41): PL/SQL: ORA-00984: column not allowed here
。
这里是我的触发器:
CREATE OR REPLACE TRIGGER emp_gotrich_trig BEFORE UPDATE OF salary ON employees
FOR EACH ROW BEGIN
IF :NEW.salary>5000 AND :OLD.salary<=5000 THEN
INSERT INTO emp_gotrich VALUES (employee_id, SYSDATE, :OLD.salary, :NEW.salary);
END IF;
END;
而这里的emp_gotrich
表:
CREATE TABLE emp_gotrich (emp_id NUMBER(6), raise_date DATE, old_sal NUMBER(8,2), new_sal NUMBER(8,2));
我想这INSERT
statemet不正确的嵌套,但我不知道我应该怎么改变。
我也尝试过使用'WHEN',但我不知道应该在哪里忽略冒号,所以它也没有工作。
CREATE OR REPLACE TRIGGER emp_getrich_log BEFORE UPDATE OF salary ON employees FOR EACH ROW
WHEN
NEW.salary>5000 AND OLD.salary<=5000;
BEGIN
INSERT INTO emp_gotrich VALUES(employee_id, SYSDATE, :OLD.salary, :NEW.salary);
END;
请帮我找到一个方法来运行它。