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

sql si en declaración de inserción sin seleccionar

Supongo que su tabla se llama tbl.

INSERT INTO tbl (campoX ) 
    SELECT 'X' FROM DUAL 
    WHERE NOT EXISTS( 
                      SELECT campoX from tbl 
                      WHERE campoX ='X'
                     );

DUAL es puramente para la conveniencia de las personas que requieren que todas las declaraciones SELECT tengan FROM y posiblemente otras cláusulas. MySQL puede ignorar las cláusulas. MySQL no requiere FROM DUAL si no se hace referencia a tablas.

Como otros mencionaron, podría usar INSERT IGNORE declaración aquí SI su campoX es un unigue O campo de clave principal.