Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

sql se na instrução insert sem selecionar


Suponho que sua tabela seja chamada tbl.
INSERT INTO tbl (campoX ) 
    SELECT 'X' FROM DUAL 
    WHERE NOT EXISTS( 
                      SELECT campoX from tbl 
                      WHERE campoX ='X'
                     );

DUAL é puramente para a conveniência de pessoas que exigem que todas as instruções SELECT tenham FROM e possivelmente outras cláusulas. O MySQL pode ignorar as cláusulas. O MySQL não requer FROM DUAL se nenhuma tabela for referenciada.

Como alguns outros mencionados, você pode usar INSERT IGNORE declaração aqui SE o seu campoX é um campo de chave única ou primária.