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;