触发通过在另一个表中添加计数/数量来更新一个表中的Total_count列

时间:2012-03-14 17:26:26

标签: oracle triggers

我创建了一个包含product_id列和total_count列的广告资源表。在购买表(purchase_idsupplier_idproduct_idprice, 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 .....

我在这一点上陷入困​​境。如何使触发器从购买表中获取数量并更新总余额?

1 个答案:

答案 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}}表而不是将这种逻辑放在触发器中。