我只是在另一个表中更改了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;
答案 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_price
和item_unit_price
值的列的引用,并且unique
约束item_id
1}}