Таблица обновлений после обновления - PullRequest
0 голосов
/ 25 октября 2019

может кто-нибудь сказать мне, как избежать этой ошибки таблицы мутаций (ORA-04091) Я должен использовать триггер после обновления для этой домашней работы.

AFTER UPDATE OF QTY,ACTUALPRICE  ON ITEM
FOR EACH ROW
DECLARE
BEGIN
    UPDATE ITEM
    SET ITEMTOT = :new.QTY * :new.ACTUALPRICE
    WHERE ORDID = :old.ORDID AND ITEMID = :old.ITEMID;
END;

1 Ответ

1 голос
/ 25 октября 2019

Вы не можете выполнить запрос снова для таблицы, по которой сработал триггер внутри самого триггера. В вашем случае, я думаю, что ваш триггер может быть переписан как BEFORE UPDATE триггер, который просто устанавливает ITEMTOT:

BEFORE UPDATE OF QTY,ACTUALPRICE ON ITEM
FOR EACH ROW
    :new.ITEMTOT = :new.QTY * :new.ACTUALPRICE
END;
...