Auto-Inkrement-IDs aus Masseneinfügungen in MySQL abrufen
Eine der häufigsten Aufgaben bei der Datenbankverwaltung ist das Einfügen mehrerer Zeilen in eine Tabelle und Abrufen der für jede Zeile generierten Auto-Inkrement-IDs. Während das Abrufen der zuletzt eingefügten ID mit der Funktion LAST_INSERT_ID() unkompliziert ist, stellen Masseneinfügungen eine Herausforderung dar, wenn es darum geht, ein Array aller generierten IDs zu erhalten.
Traditionelle Methode: Einfügen über eine temporäre Tabelle
Früher bestand eine gängige Technik darin, die neuen IDs in eine temporäre Tabelle einzufügen und sie mithilfe einer Unterabfrage abzurufen. Dieser Ansatz erfordert jedoch zusätzliche Schritte und führt zu einem Leistungsaufwand.
Verwendung von LAST_INSERT_ID() und ROW_COUNT() mit InnoDB
Neuere Versionen von MySQL, insbesondere solche, die InnoDB verwenden Die Speicher-Engine bietet eine alternative Methode zum Abrufen von Masseneinfügungs-IDs. Diese Methode nutzt die Funktion LAST_INSERT_ID() zusammen mit ROW_COUNT(), um den Bereich der zugewiesenen Werte für die automatische Inkrementierung zu extrahieren.
Vorgehensweise:
Beispiel:
INSERT INTO `my_table` (`name`, `email`) VALUES ('John Doe', 'john.doe@example.com'), ('Jane Doe', 'jane.doe@example.com'), ('Peter Jones', 'peter.jones@example.com'); SET @first_id = LAST_INSERT_ID(); SET @last_id = @first_id + ROW_COUNT() - 1; SELECT * FROM `my_table` WHERE `id` BETWEEN @first_id AND @last_id;
Vorteile:
Das obige ist der detaillierte Inhalt vonWie kann ich Auto-Inkrement-IDs nach Masseneinfügungen in MySQL effizient abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!