sql >> Database >  >> RDS >> Mysql

MySQL INSERT IF (aangepaste if-statements)

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

Als er geen rijen worden geretourneerd uit de selectie (omdat uw speciale voorwaarde onwaar is), vindt er geen invoeging plaats.

Uw schema uit de vraag gebruiken (ervan uitgaande dat uw id kolom is auto_increment ):

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

Hiermee worden geen rijen ingevoegd als er niet genoeg voorraad is, anders wordt de orderrij gemaakt.

Leuk idee trouwens!



  1. Waarom zijn Oracle-tabel-/kolom-/indexnamen beperkt tot 30 tekens?

  2. Een logo toevoegen aan een rapportkoptekst in Microsoft Access

  3. Lijst van alle indexen in een SQLite-database

  4. Onderzoek naar de traagheid van PostGIS (editie 2019)