【问题标题】:How do I update table A while adding rows on table B?如何在表 B 上添加行时更新表 A?
【发布时间】:2022-12-16 10:09:26
【问题描述】:

我的表A是关于库存中的项目记录,表B是关于采购记录的。 https://ibb.co/KyJzXZm

当客户购买时,表 B 将更新,显示 purchase_id、item_id 和 item_quantity。同时,表A中的相同项目将更新并减少表B中的数量。因此表A中的项目数量应为(4 - 3 = 1)。每当我更新表 B 时,表 A 都应该更新。有谁知道该怎么做?谢谢!!!

【问题讨论】:

  • 你应该展示你的方法和试验。

标签: sql


【解决方案1】:

我想出了一个办法。 只需为表 B 创建一个日志表。然后在“插入后”上创建一个触发器 在表 B 上,更新日志表。通过这样做,您将获得 New.item_id 和 New.item_quantity。然后在表B上创建另一个触发器“After Insert”,然后更新表A, 设置 item_quantity = item_quantity - New.item_quantity WHERE item_id = New.item_id 下面是我的原始代码,

DELIMITER //

创建触发器 purchase_log_insert 购买后插入 对于每一行 开始 插入 log_purchase(操作、purchase_id_new、item_id_new、purchase_quantity_new、时间戳) VALUES ('插入', NEW.purchase_id, NEW.item_id, NEW.purchase_quantity, NOW()); 结尾; // 分隔符;

定界符// 创建触发器 change_item 购买后插入 对于每一行 开始 更新项目 SET item_quantity = item_quantity - NEW.purchase_quantity WHERE item_id = NEW.item_id; 结尾; // 分隔符;

【讨论】:

    猜你喜欢
    • 2019-01-04
    • 2011-09-28
    • 1970-01-01
    • 2021-03-16
    • 1970-01-01
    • 1970-01-01
    • 2013-11-10
    • 2019-02-14
    • 1970-01-01
    相关资源
    最近更新 更多