Heim > Datenbank > MySQL-Tutorial > Hauptteil

Wie verhält sich LAST_INSERT_ID() bei mehreren INSERT-Anweisungen in MySQL?

Mary-Kate Olsen
Freigeben: 2024-11-17 11:48:01
Original
497 Leute haben es durchsucht

How does LAST_INSERT_ID() behave with multiple record INSERT statements in MySQL?

Verhalten von LAST_INSERT_ID() bei INSERT-Anweisungen für mehrere Datensätze

Beim Einfügen mehrerer Datensätze in eine MySQL-Tabelle mit einer einzigen INSERT-Anweisung gilt LAST_INSERT_ID() Gibt normalerweise die ID des ersten eingefügten Datensatzes und nicht des letzten zurück.

Wie im bestätigt In der MySQL-Dokumentation stellt dieses Verhalten sicher, dass die INSERT-Anweisung auf anderen Servern korrekt reproduziert werden kann. Der ID-Wert für nachfolgende Datensätze wird nicht zurückgegeben, da er nicht konsistent über verschiedene Datenbankserver hinweg zugewiesen werden kann.

Beispiel:

Bedenken Sie die folgende INSERT-Anweisung:

INSERT INTO people (name, age)
VALUES ('William', 25), ('Bart', 15), ('Mary', 12);
Nach dem Login kopieren

Nach der Ausführung dieser Anweisung gibt LAST_INSERT_ID() 1 zurück, die ID des ersten eingefügten Datensatzes (William). Dies ist das erwartete Verhalten und stellt sicher, dass die Anweisung ohne unbeabsichtigte Ergebnisse repliziert werden kann.

Auswirkungen:

Bei Code, der mehrere Datensatzeinfügungen verarbeitet, ist es wichtig, sich dessen bewusst zu sein Beheben Sie dieses Verhalten und behandeln Sie die ID-Werte entsprechend. Wenn Sie beispielsweise die IDs aller eingefügten Datensätze abrufen müssen, müssen Sie möglicherweise einen anderen Ansatz verwenden, z. B. die Anzahl der eingefügten Zeilen zurückgeben und dann die IDs einzeln abrufen.

Das obige ist der detaillierte Inhalt vonWie verhält sich LAST_INSERT_ID() bei mehreren INSERT-Anweisungen in MySQL?. 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