Heim > Datenbank > MySQL-Tutorial > Wie rufe ich IDs ab, nachdem ich mehrere Zeilen in MySQL eingefügt habe?

Wie rufe ich IDs ab, nachdem ich mehrere Zeilen in MySQL eingefügt habe?

Mary-Kate Olsen
Freigeben: 2024-12-24 10:57:10
Original
351 Leute haben es durchsucht

How to Retrieve IDs After Inserting Multiple Rows in MySQL?

Einfügen mehrerer Zeilen mit ID-Abruf in MySQL

Das Einfügen von Daten in eine MySQL-Tabelle gibt normalerweise die ID der neu erstellten Zeile über die LAST_INSERT_ID zurück ()-Funktion. Beim Einfügen mehrerer Zeilen kann es jedoch schwierig sein, ein Array von IDs zu erhalten.

Masseneinfügung mit InnoDB

Für InnoDB-Tabellen mit neueren MySQL-Versionen können Sie die verwenden Kombination aus LAST_INSERT_ID() und ROW_COUNT() zum Abrufen der eingefügten IDs. InnoDB stellt sequentielle Auto-Inkrement-IDs für Masseneinfügungen bereit, wenn die Einstellung innodb_autoinc_lock_mode 0 (traditionell) oder 1 (konsekutiv) ist.

ID-Bereich abrufen

Angenommen, es handelt sich um eine Masseneinfügung Anweisung wurde ausgeführt:

INSERT INTO table (`column1`, `column2`) VALUES ..., ..., ...
Nach dem Login kopieren

Sie können den Bereich berechnen von IDs für die neu eingefügten Zeilen mithilfe der folgenden Formel:

INSERTED_ID_RANGE = [LAST_INSERT_ID(), LAST_INSERT_ID() + ROW_COUNT() - 1]
Nach dem Login kopieren

Beispiel

Betrachten Sie die folgende Masseneinfügung:

INSERT INTO table (`column1`, `column2`)
VALUES (1, 'value 1'), (2, 'value 2'), (3, 'value 3');
Nach dem Login kopieren

Angenommen Die LAST_INSERT_ID() nach dem Einfügen ist 5, der eingefügte ID-Bereich würde sein:

[5, 5 + ROW_COUNT() - 1] = [5, 5 + 3 - 1] = [5, 7]
Nach dem Login kopieren

Daher wäre das Array der eingefügten IDs [5, 6, 7].

Das obige ist der detaillierte Inhalt vonWie rufe ich IDs ab, nachdem ich mehrere Zeilen in MySQL eingefügt habe?. 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