我创建了一个包含product_id
列和total_count
列的广告资源表。在购买表(purchase_id
,supplier_id
,product_id
,price, quantity
)中输入购买后,应更新库存表中的total_count。库存表中total_count的默认值为0。
例如,当进行购买(供应商,充电器,价格,25)时,它应该更新库存(充电器,25)。
我无法做到这一点。这是我的代码:
create or replace trigger trg_update_inventory
after insert on supplier_product
for each row
begin
update inventory set total_count=total_count+ quantity where .....
我在这一点上陷入困境。如何使触发器从购买表中获取数量并更新总余额?
答案 0 :(得分:2)
CREATE OR REPLACE TRIGGER trg_update_inventory
AFTER INSERT ON supplier_product
FOR EACH ROW
BEGIN
UPDATE inventory
SET total_count = total_count + :new.quantity
WHERE product_id = :new.product_id
END;
应该有效。但是,从系统架构的角度来看,使用make_purchase
进入INSERT
表和PURCHASE
到{的存储过程UPDATE
会更好。 {1}}表而不是将这种逻辑放在触发器中。