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
Mary-Kate OlsenOriginal
2024-12-24 10:57:10355Durchsuche

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 ..., ..., ...

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]

Beispiel

Betrachten Sie die folgende Masseneinfügung:

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

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]

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!

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