Maison > Article > base de données > Pourquoi mon compteur à incrémentation automatique InnoDB continue-t-il à s'incrémenter malgré les clés en double ?
Problème d'incrémentation automatique d'InnoDB sur les clés en double
Dans une table de base de données InnoDB avec une clé primaire définie sur incrémentation automatique, il est observé que le compteur à incrémentation automatique continue d'augmenter même lorsque des clés en double sont détectées. Ce comportement conduit à des ID non consécutifs, comme le démontre l'exemple fourni. Pour résoudre ce problème, envisagez d'implémenter la solution suivante :
Modification de la configuration MySQL
En définissant l'option de configuration innodb_autoinc_lock_mode sur "0", vous pouvez passer au mode de verrouillage à incrémentation automatique traditionnel. Ce mode garantit que toutes les instructions INSERT attribueront des valeurs consécutives aux colonnes à incrémentation automatique, même lors de la tentative d'insertion de clés en double.
SET GLOBAL innodb_autoinc_lock_mode = 0;
Il est important de noter que les instructions INSERT Les identifiants ne doivent pas être utilisés pour une quelconque logique d'application. Leur objectif principal est de fournir des identifiants uniques pour chaque enregistrement. Bien que les identifiants consécutifs puissent être esthétiques, ils n'offrent aucun avantage pratique et peuvent potentiellement entraîner des problèmes dans les systèmes distribués.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!