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

indsæt ved dubletnøgleopdatering

Jeg tror, ​​at svaret på dette er behandlet i MySQL dokumenter :

Hvis en tabel indeholder en AUTO_INCREMENT kolonne og INSERT ... UPDATE indsætter en række, LAST_INSERT_ID() funktionen returnerer AUTO_INCREMENT værdi. Hvis sætningen i stedet opdaterer en række, LAST_INSERT_ID() er ikke meningsfuldt. Du kan dog omgå dette ved at bruge LAST_INSERT_ID(expr) . Antag, at id'et er AUTO_INCREMENT kolonne. For at lave LAST_INSERT_ID() meningsfuldt for opdateringer, indsæt rækker som følger:

INSERT INTO table (a,b,c) VALUES (1,2,3)
  ON DUPLICATE KEY UPDATE id=LAST_INSERT_ID(id), c=3;


  1. Database-failover til WordPress-websteder

  2. beregne løbende balance i oracle-forespørgsel

  3. MySQL indsæt data med faste værdier og flere udvalgte resultater

  4. Den mest effektive måde at finde punkter inden for en bestemt radius fra et givet punkt