pl/sql-создать триггер в таблице-всякий раз, когда новая запись вставляется в ту же таблицу, другой столбец таблицы должен обновляться

#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.зарплата * некоторое значение Для назначения зарплаты.