Heim > Datenbank > MySQL-Tutorial > Wie kann ich die ID einer betroffenen Zeile nach einem INSERT ON DUPLICATE KEY UPDATE in MySQL abrufen?

Wie kann ich die ID einer betroffenen Zeile nach einem INSERT ON DUPLICATE KEY UPDATE in MySQL abrufen?

Patricia Arquette
Freigeben: 2024-12-04 18:19:15
Original
987 Leute haben es durchsucht

How Can I Retrieve the ID of an Affected Row After an INSERT ON DUPLICATE KEY UPDATE in MySQL?

Abrufen der ID für ON DUPLICATE KEY-Updates in MySQL

Beim Ausführen einer INSERT ON DUPLICATE KEY-Abfrage wird die ID der betroffenen Zeile abgerufen kann eine Herausforderung sein. Traditionell erfordert dies die Ausführung einer separaten Abfrage, da LAST_INSERT_ID() normalerweise nur die ID für neu eingefügte Zeilen zurückgibt.

Es gibt jedoch eine Problemumgehung, die die Funktion LAST_INSERT_ID(expr) nutzt. Durch die Übergabe eines Ausdrucks an diese Funktion können Sie deren Ausgabe auch für aktualisierte Zeilen sinnvoll machen.

Die Lösung

So rufen Sie die ID der eingefügten oder aktualisierten Zeile mit ab eine einzelne Abfrage:

  1. Stellen Sie sicher, dass Ihre Tabelle eine AUTO_INCREMENT-Spalte hat, z id.
  2. Verwenden Sie die folgende Abfragesyntax:
INSERT INTO table (a,b,c) VALUES (1,2,3)
ON DUPLICATE KEY UPDATE>
Nach dem Login kopieren

Durch Festlegen der ID-Spalte als LAST_INSERT_ID(id) in der UPDATE-Klausel speichert MySQL den neuen AUTO_INCREMENT-Wert in id-Spalte für eingefügte und aktualisierte Zeilen.

Damit können Sie die ID des letzten Vorgangs abrufen (entweder eine Einfügung oder ein Update), indem Sie einfach LAST_INSERT_ID() aufrufen. Es kombiniert effektiv die Funktionalität von INSERT- und UPDATE-Anweisungen in einer einzigen Abfrage.

Das obige ist der detaillierte Inhalt vonWie kann ich die ID einer betroffenen Zeile nach einem INSERT ON DUPLICATE KEY UPDATE in MySQL abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage