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