使用每行具有不同值的公式更新mysql行

yhxst69z  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(267)

我有两张table:
表1:零件
id(主键)
代码
标题

表2:清单项目
id(主键)
帐单id
零件号:表零件的主键
数量
我想更新零件表-数量每一次我在表中创建一行bill\u项目。零件表中的数量将按清单项目的数量递减。一次更新表bill\u项的次数可能为n次。希望在重复或更新语句上使用单个insert。
谢谢你抽出时间。

2ledvvac

2ledvvac1#

我认为在这种情况下最好使用触发器:

DELIMITER $$
    CREATE
        TRIGGER `bill_items_after_insert` AFTER INSERT 
        ON `bill_items` 
        FOR EACH ROW BEGIN

            UPDATE parts set quantity = quantity - NEW.qty WHERE id = NEW.parts_id;

        END$$
DELIMITER ;

我建议您也为更新和删除触发器也为数据一致性。
更新
根据您的评论,可以使用普通的insert和update using transaction来获取一致性数据:

START TRANSACTION;
INSERT INTO bill_items (bill_id, parts_id, qty) VALUES (your_bill_id,your_parts_id,your_qty);
UPDATE parts SET quantity = quantity - your_qty WHERE id = your_parts_id;
COMMIT;

相关问题