Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL INSERT IF (benutzerdefinierte if-Anweisungen)

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

Wenn keine Zeilen von der Auswahl zurückgegeben werden (weil Ihre spezielle Bedingung falsch ist), findet keine Einfügung statt.

Verwenden Sie Ihr Schema aus der Frage (unter der Annahme Ihrer id Spalte ist auto_increment ):

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

Dadurch werden keine Zeilen eingefügt, wenn nicht genügend Bestand vorhanden ist, andernfalls wird die Auftragszeile erstellt.

Schöne Idee übrigens!