【发布时间】:2013-07-26 18:36:06
【问题描述】:
假设,我有一个 product 表。它有 product_id 和 product_name 列。和 我有一张桌子product_purchase
pr_pur_id product_id(FK) pur_quantity
1 170 6
2 190 6
3 270 0
4 70 1
5 10 6
6 20 6
我有一个 product_sale 表。该表包含 pr_sale_id、product_id(FK) 和 sale_quantity 列。
如果我想插入 product_id 已经在 product_purchase 表中的 product_sale,如果 product_purchase.pr_pur_id 应该删除 product_purchase.pr_pur_id strong>product_purchase.pur_quantity 为 0。如果 product_purchase.pur_quantity 大于 0,则减少取决于 product_sale.sale_quanity。
如何根据 product_purchase.pur_quantity 列执行更新或删除查询?
【问题讨论】:
-
您必须在服务器端(或客户端)代码中执行此操作。据我所知,没有办法强制 mySQL 决定执行
UPDATE或DELETE。 -
您可以编写一个存储过程来检查值并根据该过程来决定触发和更新或删除查询。
-
我不确定我是否理解你,但我怀疑
REPLACE或INSERT ... ON DUPLICATE KEY UPDATE语句是你正在寻找的。span> -
如果您展示了您希望在各种情况下发生的事情的示例,将会有所帮助。
-
我同意 Barman 的观点,您可能可以通过 insert on duplicate key 语句来完成这项工作