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

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

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-17 11:48:01594Durchsuche

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 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!

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