2 votes

last_insert_id() vs SELECT Max(ID)

L'utilisation de SELECT Max(ID) FROM table est-elle plus sûre que l'utilisation de SELECT last_insert_id(), qui s'exécute comme deux requêtes distinctes ?

Je crains qu'avant que la fonction last_insert_id() ne s'exécute, une autre insertion ait lieu.

12voto

Unicron Points 3021

L'utilisation de SELECT Max(ID) FROM table est-elle plus sûre que celle de SELECT last_insert_id() ?

Certainement pas, jamais ! LAST_INSERT_ID() existe exactement pour la raison que vous indiquez : D'autres clients auraient pu faire d'autres insertions. LAST_INSERT_ID() vous donne toujours le dernier identifiant inséré sur la connexion en cours.

Référence mySQL

3voto

joeynelson Points 395

Utilisation select max(id) c'est s'attirer des ennuis. Ce n'est qu'une question de temps avant que deux insertions ne se produisent presque simultanément et que vous ne commenciez à observer une certaine folie dans vos données.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X