Cela semble subjectif, mais je dirais que non, ce n'est pas conceptuellement correct, car :
- vous voulez la dernière ligne insérée
- mais votre requête porte sur le maximum d'
id
valeur
Oui, il existe une relation entre l'ID max et l'insertion la plus récente, mais considérez ce qui suit :
- que se passe-t-il si la dernière ligne insérée a été supprimée ?
Réponse sur MySQL :vous obtenez des résultats différents. Notez qu'il n'est même pas nécessaire qu'il y ait du multithreading ou plusieurs processus pour que cela échoue. C'est parce qu'il s'agit de deux choses différentes (ce qui, certes, peut souvent produire les mêmes résultats).
select max(id) from <tablename>
contre
select last_insert_id()
(Devinez laquelle a raison.)
@Dems a souligné que l'OP est ambigu. Je vais clarifier mon point principal :
Nous parlons de trois informations différentes :
id
maximum valeurid
de la dernière ligne insérée, spécifique à une sessionid
de la dernière ligne insérée dans le tableau (quelle que soit la session)
La chose dangereuse est que parfois, interroger pour l'un donnera la bonne réponse pour un autre -- mais pas toujours .