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

MySQL INSERT IF (tilpassede if-sætninger)

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!



  1. Sådan genereres et tilfældigt heltal inden for et område i MariaDB

  2. Fejlfinding:For mange omdirigeringer

  3. Søg i alle tabeller, alle kolonner for en bestemt værdi SQL Server

  4. Fordelene ved at indeksere udenlandske nøgler