Я хочу создать триггер в новых РЕГИСТРАЦИЯ сотрудников таблицы, которых заработная плата поднимается выше 5000 и не получали зарплату выше, чем 5000 до сих пор.SQL триггер - вложенности INSERT INTO в IF условие
Trigger Я написал номер ошибки 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 не вложен правильно, но я не знаю, что я должен измениться.
Я также попытался использовать «когда», но я не знаю, где я должен omitt колонов, так что doeasn't работать тоже.
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;
Пожалуйста, помогите мне найти способ его запуска.