mysql N'a pas réussi à lire la valeur d'auto-incrément du moteur de stockage
j'ai une table mysql avec un champ id comme auto-increment .
quand j'insère des valeurs dans la table, j'obtiens une erreur comme
1467-échec de la lecture de la valeur de l'incrément automatique du moteur de stockage
show table status
m'indique que le champ avec incrément automatique a
18446744073709551615
comme valeur D'augmentation automatique.
Quel serait le problème quelqu'un peut-il m'aider ....?
13 réponses
Problème pourrait être absolument que: convertir 18446744073709551615 hex et vous trouverez
$FFFF-FFFF-FFFF-FFFF.
Si votre champ est un 64bit non signé, vous atteignez sa limite.
j'ai eu la même erreur, mais dans mon cas, j'ai eu environ 1,5 k enregistrements dans la table. Je l'ai fixée par la réinitialisation de l'AUTO INCREMEN comme ça:
ALTER TABLE `table_name` AUTO_INCREMENT = 1
j'ai commencé à obtenir cette erreur il y a quelques semaines lors de l'exécution des instructions insert:
Duplicate entry '127' for key 'PRIMARY'
... même si ma table était réglée pour l'incrément automatique. Je suis entré et j'ai changé la valeur auto_ increment de 127 à 128 puis j'ai commencé à avoir cette erreur:
1467 - Failed to read auto-increment value from storage engine
j'ai finalement compris que la table avait été initialement créée avec des colonnes de tinyint pour les ints D'ID pas standard ... donc en gros, il ne pouvait pas comprendre les nombres supérieurs à 127. Je suis passé de la type de colonne aux entiers appropriés et qui a résolu le problème.
j'Espère que l'aide à quelqu'un :)
Pour ma part, j'ai fait une erreur stupide. J'avais auparavant modifié ma table et changé le nom du AUTO_INCREMENT
colonne ID
id
. Ainsi, les noms de colonne donnés sont sensibles à la casse, les inserts suivants n'ont pas pu trouver la colonne originale.
en Fait, vous pouvez simplement modifier la colonne à supprimer son auto_increament
et définissez la propriété comme auto_increment
encore une fois. De mon côté, cette façon de travailler.
je vais la même erreur. Je modifie juste la table et augmente la taille de mon champ d'incrément automatique et ensuite exécute la requête suivante -
ALTER TABLE `table_name` AUTO_INCREMENT = 6221;
où 6221 est la dernière valeur de l'déposé avec Auto_increment.
j'ai vécu cette erreur pour la première fois moins d'une heure auparavant. La réinitialisation de l'auto_ incrément à l'aide d'une instruction SQL dans PHP MyAdmin a échoué. Après avoir cherché une solution j'ai laissé tomber la table et créé un remplacement. L'erreur est resté. Regarder de plus près a révélé que l'auto_ incrément a été mis à 0, même si j'avais spécifiquement mis le primary_key et l'auto_ incrément tout en créant les champs. La réinitialisation manuelle d'auto_ incrément à 1, encore une fois en utilisant PHP MyAdmin, a éliminé l'erreur. Heureusement pour moi je ne faisais que travailler avec un 3-tableau de la colonne contenant quelques lignes de données de test.
j'avais le même problème et la solution était de changer la colonne de smallint (6) à int.
j'ai eu ce problème aujourd'hui, trop. J'ai un tableau avec plus de deux millions de lignes et j'ai essayé d'ajouter des lignes de 140 K avec des données de charge quand cette erreur s'est produite. Je suis passé au moteur MyISAM et tout a fonctionné.
j'ai eu le problème, que l'auto_increment a été fixé à 0, mais le réglage de l'auto_increment explicitement ne fonctionne pas (resté à 0). J'ai entré une entrée manuellement avec un ID et après cela, la valeur a été réglée correctement.
j'ai eu le même problème.
raison: j'ai changé le nom du nom du champ de ma table avec la clé primaire et la propriété auto increment, en raison de laquelle auto increment a cessé de fonctionner et l'erreur 1467 est apparue.
Ce qui a fonctionné pour moi est la réinitialisation de la clé primaire dans phpmyadmin comme indiqué ci-dessous:
- allez à l'onglet "Structure" du tableau et cliquez sur "indexex" comme indiqué dans L'Image 1.
- Modifier maintenant la touche primaire comme dans L'Image 1.
- cliquez Simplement Aller dans l'Image 2.
Il a travaillé pour moi.
j'ai le même problème. J'ai une table avec des milliers d'enregistrements. Je viens de modifier le type de champ à partir de int à bigint
j'ai trouvé le paramètre est activé. il ne doit pas être plus de " 1 " selon DB-experts....
dans mon cas, il a été mis à '4', montré ci-dessous.
mysql> select @@ @ innodb_force_recovery; +-------------------------+ / @ @ innodb_force_recovery | +-------------------------+ | 4 | +-------------------------+
par conséquent, j'ai redémarré le mysql sans passer le paramètre au démarrage,
plus tard, j'ai pu insérer ou de mettre à jour les tables ...j'espère que ça aidera quelqu'un ..