嗨,我正在使用PHP来操作我的MySQL数据库中的信息。然而,我正在寻找一种方法来更新表(所有记录需要更新)基于信息在另一个表。
例如,我有一个产品列表,假设有10个产品,每个产品都有一个唯一的id存储在产品表中。我有一个购买表,它具有相同的产品ID和每个产品的购买量。我想更新产品表中的每个产品,以反映每个产品的总购买量,并将其存储在一个名为stock的列中,该列是产品表的一部分。
如何做到这一点?
如果我对你的情况理解正确的话,你正在处理库存盘点。当一个项目被购买时(由Products
表中的一个条目表示),那么库存计数数字应该减少。这应该在与Products
表的新条目相同的事务中进行,以保持数据的一致性。我建议在桌子上使用触发器来实现这一点。你可以在这个网站上找到很多关于在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
表上的更新或删除,但可以修改它来这样做。