INSERT INTO TABLE
SELECT value_for_column1, value_for_column2, ...
FROM wherever
WHERE your_special_condition
Ако не бъдат върнати редове от избора (тъй като вашето специално условие е фалшиво), не се случва вмъкване.
Използване на вашата схема от въпрос (като приемем вашия id
колоната е auto_increment
):
insert into orders (product_id, qty)
select 2, 20
where (SELECT qty_on_hand FROM products WHERE id = 2) > 20;
Това няма да вмъква редове, ако няма достатъчно наличност, в противен случай ще създаде реда за поръчка.
Добра идея между другото!