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

MySQL inserisce solo se una condizione è vera

Puoi usare un WHERE clausola per questo. Converti i tuoi INSERT VALUES in un INSERT SELECT e aggiungi un WHERE clausola.

Ad esempio,

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

Se Condizione è vera, inserirà la riga. Se Condizione è falsa, SELECT restituirà zero righe e quindi INSERT inserirà zero righe.

Se la query precedente non viene eseguita a causa di un errore di sintassi, puoi, come menzionato da @spencer7593, aggiungere FROM DUAL .

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

Il DUAL table è essenzialmente una tabella fittizia con contenuto prevedibile e su cui si può fare affidamento per avere sempre almeno una riga .