sql >> Databáze >  >> RDS >> Mysql

Vložit MySQL pouze v případě, že je podmínka pravdivá

Můžete použít WHERE doložka pro toto. Převeďte INSERT VALUES na INSERT SELECT a přidejte WHERE klauzule.

Například,

INSERT INTO fields (field_name, control_type_id, needs_approval)
SELECT
'Array Photos', 3, 0
WHERE Condition;

Pokud je podmínka pravdivá, vloží řádek. Pokud je podmínka nepravdivá, SELECT vrátí nula řádků a tedy INSERT vloží nula řádků.

Pokud se výše uvedený dotaz nespustí kvůli chybě syntaxe, můžete, jak bylo zmíněno @spencer7593, přidat FROM DUAL .

INSERT INTO fields (field_name, control_type_id, needs_approval)
SELECT
'Array Photos', 3, 0
FROM DUAL
WHERE Condition;

DUAL tabulka je v podstatě fiktivní tabulka, která má předvídatelný obsah a lze se na ni spolehnout, že bude mít vždy alespoň jeden řádek .



  1. Jak využít nové funkce dělení v PostgreSQL 11

  2. Najděte odběratele, kteří se neobnovili v rámci limitu starého předplatného

  3. nastavit počáteční hodnotu automatického přírůstku pro tabulku mysql

  4. sql pro nalezení nejnovějšího záznamu ve skupině