Mysql
 sql >> Base de données >  >> RDS >> Mysql

sql si dans l'instruction d'insertion sans select

Je suppose que votre table s'appelle tbl.

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

DUAL est purement pour la commodité des personnes qui exigent que toutes les instructions SELECT aient FROM et éventuellement d'autres clauses. MySQL peut ignorer les clauses. MySQL n'a pas besoin de FROM DUAL si aucune table n'est référencée.

Comme certains autres l'ont mentionné, vous pouvez utiliser INSERT IGNORE déclaration ici SI votre campoX est un champ de clé primaire ou unique.