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;
請幫我找到一個方法來運行它。