Heim > Datenbank > MySQL-Tutorial > Wie rufe ich automatisch generierte IDs nach der Masseneinfügung in MySQL ab?

Wie rufe ich automatisch generierte IDs nach der Masseneinfügung in MySQL ab?

DDD
Freigeben: 2024-12-28 09:34:09
Original
634 Leute haben es durchsucht

How to Retrieve Auto-Generated IDs After Bulk Insertion in MySQL?

Masseneinfügung mit ID-Abruf in MySQL

Das Einfügen mehrerer Zeilen in eine MySQL-Tabelle und das Abrufen der neuen IDs ist eine häufige Anforderung, die möglicherweise nicht erfüllt ist sofort offensichtlich umsetzbar sein. In diesem Dokument wird erläutert, wie Sie dies mit den Funktionen LAST_INSERT_ID() und ROW_COUNT() von MySQL erreichen, insbesondere bei Verwendung der InnoDB-Speicher-Engine.

Sequential ID Generation von InnoDB

Bei Verwendung In der InnoDB-Speicher-Engine mit MySQL behalten Masseneinfügungen die sequentielle Zuweisung von AUTO INCREMENT-IDs bei, vorausgesetzt, dass die innodb_autoinc_lock_mode ist auf 0 (traditionell) oder 1 (konsekutiv) gesetzt.

Abrufen eines Arrays von IDs

Um ein Array von IDs nach einer Masseneinfügung abzurufen, befolgen Sie diese Schritte:

  1. Führen Sie die Masseneinfügung aus Abfrage.
  2. Erhalten Sie die erste ID mit LAST_INSERT_ID().
  3. Berechnen Sie die letzte ID, indem Sie ROW_COUNT()-1 zur ersten ID hinzufügen.
  4. Generieren Sie ein Array von IDs vom ersten bis zum letzten Ausweis inkrementell.

Beispiel:

-- Insert bulk rows
INSERT INTO table_name (column1, column2) VALUES (val1, val2), (val3, val4), (val5, val6);

-- Get the first ID
SET @first_id = LAST_INSERT_ID();

-- Get the number of rows inserted
SET @num_rows = ROW_COUNT();

-- Create an array of IDs
SET @ids = ARRAY();

-- Populate the array
WHILE (@i < @num_rows) DO
  SET @ids[@i] = @first_id + @i;
  SET @i = @i + 1;
END WHILE;
Nach dem Login kopieren

Diese Technik stellt nach einer Masseneinfügung effizient eine Reihe neu generierter IDs bereit, die eine weitere Verarbeitung oder Verwendung darin ermöglichen die Anwendungslogik.

Das obige ist der detaillierte Inhalt vonWie rufe ich automatisch generierte IDs nach der Masseneinfügung in MySQL ab?. 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage