У меня есть 3 таблицы со следующими столбцами:
PRODUCTS(product_id,image, name,price,create_date)
ORDERS(order_id,amount,customerAddress,email,customerName,phone,orderDate,orderNum)
ORDER_DETAILS(id,amount,price,quantity,order_id,product_id)
Я создал новую таблицу с именем PRODUCTS_SOLD(product_id, quantity)
и триггер с именем PRODUCTS_TRIGGER
, поэтому после каждой вставки в ORDER_DETAILS
product_id и количество каждого продукта будут вставляться в таблицу PRODUCTS_SOLD
.
Это триггер:
CREATE OR REPLACE TRIGGER PRODUCTS_TRIGGER
AFTER INSERT ON ORDER_DETAILS
FOR EACH ROW
DECLARE
ID order_details.product_id%type := :NEW.PRODUCT_ID;
product_quantity number;
BEGIN
SELECT SUM(quantity) INTO product_quantity FROM ORDER_DETAILS
WHERE product_id = ID;
INSERT INTO PRODUCTS_SOLD VALUES(ID,product_quantity);
END;
Показывает эту ошибку:
ORA-04091: table ESPUMA.ORDER_DETAILS is mutating, trigger/function may not see it
Что я могу сделать, чтобы решить это?