INSERT INTO TABLE
SELECT value_for_column1, value_for_column2, ...
FROM wherever
WHERE your_special_condition
Hvis ingen rækker returneres fra markeringen (fordi din specielle betingelse er falsk), sker der ingen indsættelse.
Brug af dit skema fra spørgsmål (forudsat dit id
kolonnen er auto_increment
):
insert into orders (product_id, qty)
select 2, 20
where (SELECT qty_on_hand FROM products WHERE id = 2) > 20;
Dette vil ikke indsætte rækker, hvis der ikke er nok lager på lager, ellers vil det oprette ordrerækken.
God idé btw!