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

      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. Если я пытаюсь вставить новую запись, это показывает, что таблица видоизменена и т. Д.

2 ответа

Вам нужно использовать триггер перед вставкой и использовать :New.updated_sal:= :new.salary * somevalue, чтобы назначить зарплату.

Это просто :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;
Другие вопросы по тегам