如果不存在则更新

时间:2019-06-12 08:15:32

标签: mysql

Main_purchase 表中有(id,.....)列。

我也有 purchase_record 表,其中包含这些列(id,purchase_price,sale_price,quantity,amount,remark,idstock,id_main_purchase)

另一个表是具有(id,item_name,purchase_price,sale_price,quantity,remark)列的 stock 表。 作为外键,Main_purchase.id=purchase_record.id_main_purchase and stock.id=purchase_record.idstock

如果我输入item_name和 main_purchase_id 时在 purchase_record 中不存在商品,我想更新 stock 表的purchase_price,sale_price,quantity。< / p>

2 个答案:

答案 0 :(得分:1)

不太确定这是否是您要找的东西,但是您可以尝试以下操作:

UPDATE stock
   SET purchase_price = ...,
       sale_price = ...,
       quantity = ....
 WHERE item_name = ....
   AND NOT EXISTS (SELECT id
                   FROM   purchase_record
                   WHERE  id_main_purchase = ...
                     AND  idstock = stock.id)

答案 1 :(得分:0)

在我看来,您想要创建一个SQL过程。您可以实现自己想要的

  • 通过使用IF()语句(mysql http://www.mysqltutorial.org/mysql-if-function.aspxIF()文档)
  • 或使用WHILE语句。示例:

    DECLARE variable [type_of_the_variable];
    SELECT [field] INTO variable FROM [table] WHERE [field] LIKE '%item_name%' ORDER BY id DESC LIMIT 1; WHILE variable <> NULL DO -- UPDATE instruction here and don't forget the semi-colon; SET variable = NULL; END WHILE;

NB:作为建议,您应该编辑您的帖子以使其更易于阅读。使用2个换行符代替1个,并选择SQL样本(偶数列)作为code-like format,然后按ctrl + k或使用内置编辑器。