last_insert_id()を呼び出すと、最後のバッチに挿入された最初の行のIDが得られます。挿入された他のすべては、シーケンシャルであることが保証されています。
非常に奇妙なことをしているのでない限り、これにより、各行のIDを簡単に計算できます。
実際、5.1では、innodb自動増分モードパラメーターの設定に応じて動作が異なります。これは問題ではありません。デフォルトから変更しない限り、期待される動作が表示されます。
ON DUPLICATE KEYUPDATEやINSERTIGNOREを実行する場合など、これが期待どおりに機能せず、役に立たない場合があります。このような場合、各行のIDを計算するために何か他のことをする必要があります。
ただし、auto-inc列に値が指定されていないプレーンなバニラINSERTバッチの場合は、簡単です。
auto-incrementsの詳細innodbで処理されるのはここです