Mysql
 sql >> Datenbank >  >> RDS >> Mysql

sql if in insert-Anweisung ohne select

Ich nehme an, Ihre Tabelle heißt tbl.

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

DUAL dient lediglich der Bequemlichkeit von Leuten, die verlangen, dass alle SELECT-Anweisungen FROM und möglicherweise andere Klauseln haben sollten. MySQL kann die Klauseln ignorieren. MySQL benötigt FROM DUAL nicht, wenn keine Tabellen referenziert werden.

Wie einige andere bereits erwähnt haben, könnten Sie INSERT IGNORE verwenden Anweisung hier, WENN Ihr campoX ein eindeutiges oder primäres Schlüsselfeld ist.