sql >> Databasteknik >  >> RDS >> Mysql

sql if i insert-satsen utan att välja

Jag antar att ditt bord heter tbl.

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

DUAL är enbart för att underlätta för personer som kräver att alla SELECT-satser ska ha FROM och eventuellt andra satser. MySQL kan ignorera klausulerna. MySQL kräver inte FROM DUAL om inga tabeller refereras.

Som några andra nämnde, kan du använda INSERT IGNORE uttalande här OM din campoX är ett unigue eller primärnyckelfält.



  1. SQL UPPDATERA alla värden i ett fält med bifogad sträng CONCAT fungerar inte

  2. SQLite Inner Join

  3. Benchmarking Managed PostgreSQL Cloud Solutions:Del två - Amazon RDS

  4. Få id för en rad när UNIQUE KEY kränks