一个更新mysql数据库中所有列的脚本


A script to update all columns in a mysql database

嗨,我正在使用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表上的更新或删除,但可以修改它来这样做。