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

sql se nell'istruzione insert senza select

Presumo che il tuo tavolo si chiami tbl.

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

DUAL è puramente per comodità delle persone che richiedono che tutte le istruzioni SELECT contengano FROM e possibilmente altre clausole. MySQL può ignorare le clausole. MySQL non richiede FROM DUAL se non viene fatto riferimento a tabelle.

Come altri hanno già detto, potresti usare INSERT IGNORE dichiarazione qui SE il tuo campoX è un campo chiave unigue o primario.