Ik geloof dat het antwoord hierop wordt behandeld in de MySQL documenten :
Als een tabel een AUTO_INCREMENT . bevat kolom en INSERT ... UPDATE voegt een rij in, de LAST_INSERT_ID() functie retourneert de AUTO_INCREMENT waarde. Als de instructie in plaats daarvan een rij bijwerkt, LAST_INSERT_ID() is niet zinvol. U kunt dit echter omzeilen door LAST_INSERT_ID(expr) . te gebruiken . Stel dat id de AUTO_INCREMENT . is kolom. Om LAST_INSERT_ID() . te maken zinvol voor updates, voeg rijen als volgt in:
INSERT INTO table (a,b,c) VALUES (1,2,3)
ON DUPLICATE KEY UPDATE id=LAST_INSERT_ID(id), c=3;