Ich glaube, die Antwort darauf findet sich in MySQL Dokumente :
Wenn eine Tabelle einen AUTO_INCREMENT
enthält Spalte und INSERT
... UPDATE
fügt eine Zeile ein, die LAST_INSERT_ID()
Funktion gibt den AUTO_INCREMENT
zurück Wert. Wenn die Anweisung stattdessen eine Zeile aktualisiert, LAST_INSERT_ID()
ist nicht aussagekräftig. Sie können dies jedoch umgehen, indem Sie LAST_INSERT_ID(expr)
verwenden . Angenommen, diese ID ist AUTO_INCREMENT
Säule. Um LAST_INSERT_ID()
zu erstellen Sinnvoll für Updates, Zeilen wie folgt einfügen:
INSERT INTO table (a,b,c) VALUES (1,2,3)
ON DUPLICATE KEY UPDATE id=LAST_INSERT_ID(id), c=3;