sql >> Database >  >> RDS >> Mysql

sql if in insert statement zonder select

Ik neem aan dat je tafel tbl heet.

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

DUAL is puur voor het gemak van mensen die eisen dat alle SELECT-instructies FROM en mogelijk andere clausules moeten hebben. MySQL kan de clausules negeren. MySQL vereist geen FROM DUAL als er niet naar tabellen wordt verwezen.

Zoals sommigen al zeiden, zou je INSERT IGNORE . kunnen gebruiken verklaring hier INDIEN uw campoX een uniek of primair sleutelveld is.



  1. PASS Summit bijwonen in Charlotte?

  2. Gebruik OBJECTPROPERTY() om erachter te komen of een tabel een systeemtabel is in SQL Server

  3. Database-ontwerp 101

  4. MySQL-query in een lus versus het gebruik van een SQL-join