sql >> Base de Datos >  >> RDS >> Mysql

Insertar MySQL solo si una condición es verdadera

Puedes usar un WHERE cláusula para esto. Convierta su INSERTAR VALORES en INSERTAR SELECCIÓN y agregue un WHERE cláusula.

Por ejemplo,

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

Si la Condición es verdadera, insertará la fila. Si la Condición es falsa, SELECT devolverá cero filas y, por lo tanto, INSERT insertará cero filas.

Si la consulta anterior no se ejecuta debido a un error de sintaxis, puede, como mencionó @spencer7593, agregar FROM DUAL .

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

El DUAL table es esencialmente una tabla ficticia que tiene un contenido predecible y se puede confiar en que siempre tendrá al menos una fila .