gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 10:02:25 26 4
gpt4 key购买 nike

我有两个表:

表 1:部件

  • id(主键)
  • 代码
  • 标题
  • 数量

表 2:bill_items

  • id(主键)
  • 账单 ID
  • parts_id:指表部件的主键
  • 数量

每次我在表 bill_items 中创建一行时,我想更新零件表 - 数量。零件表中的数量将减少 bill_items 的数量。一次性可能会对表 bill_items 进行 N 次更新。想要使用单个 INSERT....ON DUPLICATE 或 UPDATE 语句。

感谢您的宝贵时间。

最佳答案

我认为对于这种情况最好使用触发器:

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 ;

我建议您还为 UPDATE 和 DELETE 创建触发器,以保证数据一致性。

已更新

根据您的评论,可以使用正常插入和使用事务更新来实现数据一致性:

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;

关于mysql - 使用每行具有不同值的公式更新 mysql 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52640070/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com