0
我已創建此觸發器,以便在向ORDER_DETAIL表插入一行後,從表中獲取「UNIT_PRICE」 ITEM並將其設置爲基於「ITEM_ID」的ORDER_DETAIL表的「價格」。我對語法有任何錯誤嗎?先謝謝你!如何語法SQL中的觸發器,以便更新同一個表中的列AFTER INSERT(oracle數據庫)
CREATE OR REPLACE TRIGGER PRICETRIG
AFTER INSERT ON ORDER_DETAIL FOR EACH ROW
BEGIN
UPDATE ORDER_DETAIL
SET ORDER_DETAIL.PRICE=(SELECT ITEM.UNIT_PRICE FROM ITEM WHERE
ORDER_DETAIL.ITEM_ID=ITEM.ITEM_ID);
END;
這就是錯誤:
One error saving changes to table "ORDER_DETAIL":
Row 8: ORA-04091: table ORDER_DETAIL is mutating, trigger/function
may not see it
ORA-06512: at "PRICETRIG", line 2
ORA-04088: error during execution of trigger 'PRICETRIG'
ORA-06512: at line 1