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 ....?

16
demandé sur Brian Tompsett - 汤莱恩 2011-09-08 14:56:14

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.

12
répondu Marco 2011-09-08 11:01:13

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
22
répondu infinity 2013-06-05 21:09:59

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 :)

10
répondu Mike 2018-07-11 09:18:04

Pour ma part, j'ai fait une erreur stupide. J'avais auparavant modifié ma table et changé le nom du AUTO_INCREMENT colonne IDid. Ainsi, les noms de colonne donnés sont sensibles à la casse, les inserts suivants n'ont pas pu trouver la colonne originale.

5
répondu che-azeh 2015-11-10 20:33:10

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.

4
répondu Shinbo 2012-09-21 23:39:01

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.

3
répondu Deepak Sharma 2016-04-14 04:45:35

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.

2
répondu Robert 2014-08-21 13:13:12

j'avais le même problème et la solution était de changer la colonne de smallint (6) à int.

0
répondu Lee 2014-06-10 18:43:27

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é.

0
répondu Christian Lundahl 2018-05-25 11:19:44

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.

0
répondu Markus Grob 2018-08-11 10:47:56

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:

  1. allez à l'onglet "Structure" du tableau et cliquez sur "indexex" comme indiqué dans L'Image 1.
  2. Modifier maintenant la touche primaire comme dans L'Image 1.
  3. cliquez Simplement Aller dans l'Image 2.

Image 1

Image 2

Il a travaillé pour moi.

-1
répondu shikhar vijayvergiya 2017-12-17 12:01:38

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

-1
répondu Rheena 2018-01-04 03:04:26

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 ..

-1
répondu ananthakumar 2018-04-12 13:48:18