J'ai récemment lu qu'en raison de la façon dont InnoDB recalcule la valeur AUTO_INCREMENT lorsque le serveur redémarre, tous les enregistrements situés dans la partie supérieure de la liste d'ID peuvent voir leurs ID réutilisés.
Normalement, ce n'est pas un problème, car lorsqu'un utilisateur est supprimé, tout ce qui est associé à l'ID est également supprimé des autres tables.
Mais je laisse délibérément leurs messages de forum orphelins, étiquetés "Posté par = Utilisateur # 123 =", afin que les conversations passées soient conservées. De toute évidence, si un ID est réutilisé, ce sera un problème.
Je n'ai jamais eu ce problème auparavant car il y avait toujours suffisamment de nouveaux utilisateurs pour qu'il soit peu probable qu'un ID soit réutilisé de cette manière. Cependant, sur mon nouveau projet, les inscriptions sont rares et les suppressions d'utilisateurs inactifs sont fréquentes (surtout depuis que les comptes "Open Alpha" ne durent que trois jours en tant qu'aperçu), et une telle réutilisation des ID s'est produite trois à trois maintenant.
J'ai "résolu" le problème en enregistrant la valeur correcte pour AUTO_INCREMENT ailleurs et en l'utilisant au lieu de compter sur la valeur interne. Existe-t-il un moyen réel pour qu'InnoDB se souvienne de la dernière valeur réelle?