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 .