Mysql
 sql >> Database >  >> RDS >> Mysql

MySQL INSERT IF (dichiarazioni if ​​personalizzate)

INSERT INTO TABLE
SELECT value_for_column1, value_for_column2, ...
FROM wherever
WHERE your_special_condition

Se non vengono restituite righe dalla selezione (perché la tua condizione speciale è falsa), non viene eseguito alcun inserimento.

Usando lo schema della domanda (supponendo che il tuo id la colonna è auto_increment ):

insert into orders (product_id, qty)
select 2, 20
where (SELECT qty_on_hand FROM products WHERE id = 2) > 20;

Questo non inserirà righe se non c'è abbastanza stock a disposizione, altrimenti creerà la riga dell'ordine.

Bella idea tra l'altro!