用于更新mysql数据库中所有列的脚本

时间:2013-05-21 12:20:34

标签: php mysql

您好我正在使用PHP来处理MySQL数据库中的信息。但是,我正在寻找一种方法来更新表(所有记录需要更新)基于另一个表中的信息。

例如,我有一个产品列表,可以说10个,每个产品都有一个存储在产品表中的唯一ID。我有一个购买表,其中包含相同的产品ID和每个产品的购买量。我想更新产品表中的每个产品,以反映每个产品的总购买量,并将其存储在名为instock的列中,该列是products表的一部分。

如何做到这一点?

1 个答案:

答案 0 :(得分:0)

如果我理解你的情况,你就是在处理库存数量。购买商品时(由Products表中的条目表示),应减少库存数量。这应该在与Products表的新条目相同的事务中发生,以保持数据的一致性。我建议在表格上使用Trigger来实现这一点。您将在此站点上找到有关在MySQL中实现触发器的大量信息。您可以使用的触发器可能如下所示:

CREATE TRIGGER update_stock_count
    BEFORE INSERT ON Purchases
    FOR EACH ROW
    BEGIN 
        UPDATE Products SET stock_count = stock_count - NEW.quantity_ordered
            WHERE product_id = NEW.product_id;
    END;

此触发器未考虑可能没有足够的产品库存,也没有处理Purchases表上的更新或删除,但可以对其进行修改以执行此操作。