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 .