[Base de Donnée] phpmyadmin / AUTO_INCREMENT
... / [Base de Donnée] phpmyadm...
BMPCreated with Sketch.BMPZIPCreated with Sketch.ZIPXLSCreated with Sketch.XLSTXTCreated with Sketch.TXTPPTCreated with Sketch.PPTPNGCreated with Sketch.PNGPDFCreated with Sketch.PDFJPGCreated with Sketch.JPGGIFCreated with Sketch.GIFDOCCreated with Sketch.DOC Error Created with Sketch.
Question

[Base de Donnée] phpmyadmin / AUTO_INCREMENT

by
2db363ae427b3d355ced
Created on 2024-09-26 08:24:49 (edited on 2024-11-18 11:04:43) in Hébergement Web-old

**Mes bases de données ne s'auto-incrémentent plus**

Bonjour, je suis webmaster, et développe mes propres codes depuis des années. Récemment, nombreux de mes clients m'ont fait un retour d'un "bug" sur leur site. J'ai remonté l'erreur et je me suis rendu compte que les bases de données n'incrémentaient plus les IDs lorsque j'ajoutais une entrée dans la base de donnée.

Quelques infos :

- les clients ont chacun leur compte / serveur / base de donnée, je n'ai pas centralisé tous ces sites.
- ca marchait bien depuis des années, je n'ai rien changé au code PHP/SQL de mes sites.
- quand je me connecte à phpmyadmin, je ne peux pas changer la valeur de l'auto-increment via : table > opérations > Options pour cette table > auto-increment (il ne prend pas en compte ma nouvelle valeur) ; je suis obligé de faire "analyser la table" pour qu'il se rende compte qu'il y a une erreur (un ID plus grand que l'auto-increment), et qu'il le rectifie.
- MYSQL v.8.0

Je ne trouve rien d'autre sur le net mentionnant cette erreur... C'est donc que c'est lié à mon code ? Mais tout marchait nikel depuis des années, et il n'y a pas de raison que l'auto-incrément ne fonctionne pas vu que la table accueille bien une nouvelle entrée.

Y a t-il eu une mise à jour des Bases de Données ou que sais-je ?
Merci à celles/ceux qui ont eu la gentillesse de me lire.

Sébastien


3 Replies ( Latest reply on 2024-11-18 11:04:54 by
2db363ae427b3d355ced
)

Bonjour,

Voici peut être un début de réponse suite à la mise à jour de la version de MySQL : https://www.percona.com/blog/auto-increment-counter-persistence-in-mysql-8-comparing-the-evolution-from-mysql-5-7/

Cordialement, janus57

Merci énormément pour avoir pris le temps de me répondre.

Effectivement, cette nouvelle version touche au concept des Auto-Increments, je dois donc creuser la dedans. Même si mon problème n'est pas reporté dans votre lien, c'est une bonne piste pour moi pour commencer les investigations.

Encore merci !
Sébastien

Bonjour, je me suis renseigné sur ces évolutions sur MySQL v.8 et sa différente approche sur l'AUTO_INCREMENT. Autant je comprends le concept, mais pas la pratique.

Je me suis connecté directement à phpmyadmin, pour ne pas passer par mes lignes de code.
J'ai créé pour mes tests une table très basique :

* ID (INT - auto_increment)
* nom (TEXT)

Lorsque j'utilise l'onglet "insérer" ou que j'injecte le SQL suivant :
`INSERT INTO `test` (`id`, `nom`) VALUES (NULL, 'user 3');`
Mon AUTO_INCREMENT ne se met pas a jour. Il reste à des valeurs antérieures. Oui, INFORMATION_SCHEMA ne s'update pas et met par defaut 24h a se mettre a jour. J'ai lu sur ces forums qu'une idée d'approche serait de definir "information_schema_stats_expiry = 0", mais je n'ai pas accès au fichier config de la BdD, du moins de ce que je sache. Un "hack" serait alors de forcer la mise a jour les informations de la table avec ANALYZE TABLE, mais ce n'est pas la meilleure solution...