У меня проблема с триггером, который я пытаюсь внедрить в свою программу.
У меня есть таблица с названием Products, в которой есть столбцы, такие как ID, PRICE и DISCOUNT
Я сделал этотриггер:
CREATE or REPLACE TRIGGER DISCOUNT_TRIGGER
after update of DISCOUNT on PRODUCTS
for each row
BEGIN
update PRODUCTS set PRICE = PRICE * (1 - DISCOUNT);
END;
Я хочу изменить столбец цены строки после обновления столбца скидки.
Например, если я выполню этот запрос:
UPDATE PRODUCTS SET DISCOUNT = 25 WHERE ID = 25;
Когда я выполняю этот запрос, я получаю следующую ошибку:
Error starting at line : 11 in command -
update products set DISCOUNT = 25 where id = 1
Error report -
ORA-04091: table YASSINEII.PRODUCTS is mutating, trigger/function may not see it
ORA-06512: at "YASSINEII.DISCOUNT_TRIGGER", line 2
ORA-04088: error during execution of trigger 'YASSINEII.DISCOUNT_TRIGGER'
Есть идеи, что я здесь не так делаю?