您好我正在使用 PHP 来操作我的 MySQL 数据库中的信息。但是,我正在寻找一种基于另一个表中的信息来更新表(所有记录都需要更新)的方法。
例如,我有一个产品列表,假设每个产品有 10 个,每个产品都有一个唯一的 id 存储在产品表中。我有一个购买表,它具有相同的产品 ID 和每个产品的购买量。我想更新 products 表中的每个产品以反映每个产品的总购买量,并将其存储在一个名为 instock 的列中,该列是 products 表的一部分。
如何才能做到这一点?
如果我正确理解您的情况,您正在处理库存盘点。当购买了一个项目(由表中的一个条目表示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
表上的更新或删除,但可以对其进行修改。