#oracle #plsql #plsql-psp
#Oracle #plsql #plsql-psp
Вопрос:
create trigger calculation after insert on employee for each row begin if :new.updated_sal is null then update employee set updated_sal= (10/100)* salary where id=:new.id; end if; end;
Я хотел бы создать триггер в таблице сотрудников, всякий раз, когда в ту же таблицу вставляется новая запись, 10% зарплаты в столбце зарплата должно быть рассчитано и помещено в другой столбец updated_sal. Если я попытаюсь вставить новую запись, это покажет, что таблица мутировала и т. Д
Ответ №1:
Это всего :new
лишь псевдозапись, которая вам нужна:
create trigger calculation after insert on employee for each row begin if :new.updated_sal is null then :new.updated_sal := (10/100) * :new.salary; end if; end;
Комментарии:
1. Но это должен быть триггер » до «. Триггер after не может изменить значение столбца.
Ответ №2:
Вам нужно использовать триггер перед вставкой И использовать :New.updated_sal:= :new.зарплата * некоторое значение Для назначения зарплаты.