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

MySQL INSERT hvis den ikke eksisterer (bruger ikke primærnøgle)

1) Kan du tilføje en UNIQUE begrænsning på (myid, theirid) ? Hvis ja, tilføj denne begrænsning og brug:

INSERT INTO mytable (myid, theirid) 
  VALUES (5, 1) ;

og ignorer produktadvarslerne (eller erstat ovenstående med INSERT IGNORE )

2) Hvis du ikke kan tilføje en sådan begrænsning (f.eks. vil du nogle gange tillade sådanne dubletter og andre gange ikke), kan du bruge denne:

INSERT INTO mytable (myid, theirid) 
  SELECT 5, 1 
  FROM dual 
  WHERE NOT EXISTS
        ( SELECT *
          FROM mytable
          WHERE myid = 5
            AND theirid = 1
        ) ; 


  1. Typer af SQL-kommandoer

  2. SQL-sætning - VÆLG det omvendte af denne forespørgsel

  3. Hvordan får man det aktuelle databasetransaktions-id ved hjælp af JDBC eller Hibernate?

  4. Forespørg en MySQL db ved hjælp af java