Heim >Datenbank >MySQL-Tutorial >Wie rufe ich die letzte Einfügungs-/Aktualisierungs-ID mit MySQLs ON DUPLICATE KEY ab?

Wie rufe ich die letzte Einfügungs-/Aktualisierungs-ID mit MySQLs ON DUPLICATE KEY ab?

DDD
DDDOriginal
2024-12-10 01:34:10397Durchsuche

How to Retrieve the Last Insert/Update ID with MySQL's ON DUPLICATE KEY?

MySQL ON DUPLICATE KEY: Abrufen der letzten Einfügungs-/Aktualisierungs-ID

Beim Ausführen einer INSERT- oder UPDATE-Anweisung mit ON DUPLICATE KEY die insert_id von MySQL ()-Funktion gibt normalerweise die ID der eingefügten Zeile zurück. Dieser Ansatz ist jedoch problematisch, wenn die Anweisung stattdessen eine vorhandene Zeile aktualisiert.

Um diese Einschränkung zu überwinden und die ID sowohl eingefügter als auch aktualisierter Zeilen abzurufen, ohne mehrere Abfragen auszuführen, bietet MySQL eine Lösung:

Wie in der MySQL-Dokumentation erwähnt, können Sie durch die Übergabe eines Ausdrucks an LAST_INSERT_ID() diesen für Aktualisierungen aussagekräftig machen. Insbesondere wenn Sie die letzte Einfügungs- oder Aktualisierungs-ID abrufen möchten, wenn Sie ON DUPLICATE KEY verwenden, können Sie die folgende Technik anwenden:

Angenommen, „id“ ist eine AUTO_INCREMENT-Spalte, ändern Sie die INSERT-Anweisung so, dass sie Folgendes enthält:

INSERT INTO table (a,b,c) VALUES (1,2,3)
  ON DUPLICATE KEY UPDATE>

In diesem Beispiel gibt LAST_INSERT_ID() für Einfügungen die ID der neu erstellten Zeile zurück. Bei Aktualisierungen wird die ID der aktualisierten Zeile zurückgegeben, wodurch eine konsistente Methode zum Abrufen der zuletzt eingefügten oder aktualisierten ID für beide Szenarien bereitgestellt wird.

Das obige ist der detaillierte Inhalt vonWie rufe ich die letzte Einfügungs-/Aktualisierungs-ID mit MySQLs ON DUPLICATE KEY ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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