如果满足条件,MySQL将插入值

时间:2016-10-12 19:21:13

标签: mysql

我只是在另一个表中更改了qty时尝试插入表中,参见示例

INSERT INTO sales_items (sale_id, item_id, quantity_purchased, item_cost_price, item_unit_price) 
VALUES ('1', '1546', '3', '10', '10')
WHEN (SELECT quantity FROM  location_items WHERE  location_id =4 AND  item_id =1546) < 10;

2 个答案:

答案 0 :(得分:0)

不可能那样。 INSERT查询不能包含where子句,句点。

您可以悬停执行insert select from

INSERT INTO ...
SELECT ... FROM ... WHERE (...) < 10

如果SELECT没有找到任何行,则不会插入任何内容。

答案 1 :(得分:0)

您可以执行以下操作:

INSERT INTO sales_items 
  (sale_id, item_id, quantity_purchased, item_cost_price, item_unit_price) 
VALUES 
  (SELECT '1', '1546', '3', '10', '10' 
   FROM location_items 
   WHERE  location_id = 4 
     AND item_id = 1546 
     AND quantity < 10
);

或者,如果您想在一个查询中完成所有操作,包括更新:

REPLACE INTO sales_items 
  (item_id, quantity_purchased, item_cost_price, item_unit_price) 
VALUES 
  (SELECT item_id, ??, ??, ?? 
   FROM location_items 
   WHERE quantity < 10
     AND quantity > 0
);

...您必须在??中填写对包含item_cost_priceitem_unit_price值的列的引用,并且unique约束item_id 1}}