Mysql
 sql >> Base de données >  >> RDS >> Mysql

Récupération des derniers identifiants insérés pour plusieurs lignes

L'appel de last_insert_id() vous donne l'identifiant de la PREMIÈRE ligne insérée dans le dernier lot. Tous les autres insérés sont garantis séquentiels.

À moins que vous ne fassiez quelque chose de très étrange, cela vous permet de calculer assez facilement l'ID de chaque ligne.

En fait, le comportement varie en 5.1 en fonction du réglage du paramètre de mode d'incrémentation automatique innodb ; cela ne devrait pas avoir d'importance. Tant que vous ne le modifiez pas par défaut, vous verrez le comportement attendu.

Il y a des cas occasionnels où cela ne fait pas ce que vous attendez et n'est pas utile - comme si vous faites une mise à jour ON DUPLICATE KEY ou INSERT IGNORE. Dans ces cas, vous devrez faire autre chose pour déterminer les ID de chaque ligne.

Mais pour un lot INSERT plain vanilla, sans valeurs spécifiées pour la colonne auto-inc, c'est facile.

Une description complète de la façon dont les auto-incréments sont géré dans innodb est ici