我有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和数量都将插入表{{1} }。
这是触发器:
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;
我能做些什么来解决它?
答案 0 :(得分:0)
只需将您的触发器从
BEFORE INSERT
转换为AFTER INSERT
。
因为在同一个表的DML操作期间,它正在努力确定:NEW.PRODUCT_ID
ORDER_DETAILS
表的数量总和。