Masseneinfügung mit zurückgegebenen IDs in MySQL
Das Einfügen mehrerer Zeilen in eine MySQL-Tabelle ist eine häufige Aufgabe. Wenn Sie jedoch die neu generierten IDs nach der Masseneinfügung abrufen müssen, reicht die Standardfunktion LAST_INSERT_ID() nicht aus.
InnoDB-Lösung
Wenn Ihre Tabelle verwendet die InnoDB-Speicher-Engine (eine empfohlene Einstellung für die meisten Workloads), MySQL bietet eine Lösung mit den Funktionen LAST_INSERT_ID() und ROW_COUNT(). So funktioniert es:
In InnoDB garantieren Masseneinfügungen mit AUTO INCREMENT fortlaufende Nummern, wenn innodb_autoinc_lock_mode auf 0 (traditionell) oder 1 (konsekutiv) gesetzt ist. Das bedeutet, dass Sie die erste ID mit LAST_INSERT_ID() und die letzte ID durch Hinzufügen von ROW_COUNT() - 1 abrufen können.
Zum Beispiel:
INSERT INTO example_table (name) VALUES ('John'), ('Mary'), ('Bob'); -- Get first ID SELECT LAST_INSERT_ID() AS first_id; -- Get row count SELECT ROW_COUNT() AS row_count; -- Get last ID SELECT LAST_INSERT_ID() + ROW_COUNT() - 1 AS last_id;
Das obige ist der detaillierte Inhalt vonWie rufe ich automatisch generierte IDs nach einer Masseneinfügung in MySQL ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!