Wywołanie last_insert_id() daje identyfikator PIERWSZEGO wiersza wstawionego do ostatniej partii. Wszystkie inne wstawione są gwarantowane jako sekwencyjne.
O ile nie robisz czegoś bardzo dziwnego, pozwala to na łatwe obliczenie identyfikatora każdego wiersza.
W rzeczywistości zachowanie różni się w 5.1 w zależności od ustawienia parametru trybu automatycznego przyrostu innodb; to nie powinno mieć znaczenia. Dopóki nie zmienisz tego z domyślnego, zobaczysz oczekiwane zachowanie.
Zdarzają się sporadyczne przypadki, w których nie działa to zgodnie z oczekiwaniami i jest nieprzydatne — na przykład, gdy wykonujesz AKTUALIZACJĘ NA ZDUPLIKOWANYM kluczu lub INSERT IGNORE. W takich przypadkach będziesz musiał zrobić coś innego, aby wypracować identyfikatory każdego wiersza.
Ale w przypadku zwykłej waniliowej partii INSERT, bez wartości określonych dla kolumny auto-inc, jest to łatwe.
Pełny opis tego, jak automatyczne przyrosty obsługiwane w innodb jest tutaj