Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

MySQL INSERT IF (instruções if personalizadas)

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

Se nenhuma linha for retornada da seleção (porque sua condição especial é falsa), nenhuma inserção ocorrerá.

Usando seu esquema da pergunta (assumindo seu id coluna é auto_increment ):
insert into orders (product_id, qty)
select 2, 20
where (SELECT qty_on_hand FROM products WHERE id = 2) > 20;

Isso não inserirá linhas se não houver estoque suficiente disponível, caso contrário, criará a linha do pedido.

Boa ideia tbm!