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;