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

sql if i insert statement uden at vælge

Jeg går ud fra, at dit bord hedder tbl.

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

DUAL er udelukkende for at gøre det nemmere for folk, der kræver, at alle SELECT-sætninger skal have FROM og muligvis andre klausuler. MySQL kan ignorere klausulerne. MySQL kræver ikke FROM DUAL, hvis der ikke henvises til tabeller.

Som nogle andre nævnte, kunne du bruge INSERT IGNORE sætning her HVIS din campoX er et unigue eller primært nøglefelt.



  1. mysqli_connect():(HY000/2002):Kan ikke oprette forbindelse til lokal MySQL-server via socket

  2. JavaScript-datoobjektets månedsindeks begynder med 0

  3. Får du ugenummer fra en dato i MS SQL Server 2005?

  4. Fem seje ting, jeg lærte på PostgreSQL Conference Europe 2018