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

MySQL PÅ DUPLIKAT NØGLE - sidste indsættelses-id?

Tjek denne side ud:https://web. archive.org/web/20150329004325/https://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html
Nederst på siden forklarer de, hvordan du kan gøre LAST_INSERT_ID meningsfuld for opdateringer ved at sende et udtryk til den pågældende MySQL-funktion.

Fra MySQL-dokumentationseksemplet:

Hvis en tabel indeholder en AUTO_INCREMENT kolonne og INSERT ... UPDATE indsætter en række, returnerer funktionen LAST_INSERT_ID() værdien AUTO_INCREMENT. Hvis sætningen opdaterer en række i stedet, er LAST_INSERT_ID() ikke meningsfuld. Du kan dog omgå dette ved at bruge LAST_INSERT_ID(udtr.). Antag, at id er kolonnen AUTO_INCREMENT. For at gøre LAST_INSERT_ID() meningsfuld for opdateringer, skal du indsætte 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. Særlige øer

  2. Opsætning af fremmednøgler i phpMyAdmin?

  3. Levenshtein:MySQL + PHP

  4. Hvordan bruger man MySQLdb med Python og Django i OSX 10.6?