Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL ON DUPLICATE KEY - letzte Insert-ID?

Sehen Sie sich diese Seite an:https://web. archive.org/web/20150329004325/https://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html
Unten auf der Seite wird erklärt, wie Sie LAST_INSERT_ID sinnvoll für Aktualisierungen machen können, indem Sie einen Ausdruck an diese MySQL-Funktion übergeben.

Aus dem MySQL-Dokumentationsbeispiel:

Wenn eine Tabelle eine AUTO_INCREMENT-Spalte enthält und INSERT ... UPDATE eine Zeile einfügt, gibt die LAST_INSERT_ID()-Funktion den AUTO_INCREMENT-Wert zurück. Wenn die Anweisung stattdessen eine Zeile aktualisiert, ist LAST_INSERT_ID() nicht sinnvoll. Sie können dies jedoch umgehen, indem Sie LAST_INSERT_ID(expr) verwenden. Angenommen, id ist die Spalte AUTO_INCREMENT. Um LAST_INSERT_ID() sinnvoll für Aktualisierungen zu machen, fügen Sie Zeilen wie folgt ein:

INSERT INTO table (a,b,c) VALUES (1,2,3)
  ON DUPLICATE KEY UPDATE id=LAST_INSERT_ID(id), c=3;