Я только что создал триггер для таблицы сотрудников, так как после обновления новое значение зарплаты должно быть большим или аналогичным старому окладу.
с ошибкой при запуске триггера с указанием кода триггера
create trigger fix_salary
after update on employee
for each row
when(old.salary>new.salary)
begin
update employee
set salary=:old.salary;
end;
/
после этого я добавил это в текстовый файл и сохранил его с расширением .pl sql. затем я добавил к cmd как: - @ "путь к fl ie";
и когда я поставил команду обновления как: -
update employee set salary=1000 where eid=1;
после этого эта ошибка отображается :
update employee set salary=500 where eid=1
*
ERROR at line 1:
ORA-04091: table SYSTEM.EMPLOYEE is mutating, trigger/function may not see it
ORA-06512: at "SYSTEM.FIX_SALARY", line 2
ORA-04088: error during execution of trigger 'SYSTEM.FIX_SALARY'