Maison > Questions et réponses > le corps du texte
Les données dans ma base de données ne contiennent que des centaines de milliers d'entrées. La clé primaire est int 11. Ensuite, j'ai pu l'insérer avant, mais maintenant j'obtiendrai cette erreur
Veuillez répondre
ringa_lee2017-06-17 09:17:21
Clarifions d’abord quelques concepts
La taille finale de la valeur stockée dans int(11) et int(3) est la même. Le 3 et le 11 sont la longueur du nombre lorsqu'il est affiché sur le terminal et n'ont rien à voir avec la taille et la longueur de. le numéro enregistré
Avec 110 000 données, votre clé primaire ne doit pas être la taille du pas plus 1, sinon votre identifiant ne peut pas commencer par incrémenter 0.
La personne ci-dessus a expliqué clairement la raison, en disant que la valeur de la clé primaire est dupliquée. Ensuite, allez dans la base de données pour trouver cet enregistrement d'abord, puis regardez les données de plus de 100 000, pourquoi la clé primaire est 4294967295
2 à la puissance 32 = 4294967296 (non signé), signé puis divisé par 2, il y a un nombre négatif de plus que le nombre positif, -2147483648~+2147483647 type int non signé 4294967296 valeur maximale
世界只因有你2017-06-17 09:17:21
Il s'agit d'une clé en double, essayez ceci, son fonctionnement n'est pas garanti...
étape 1 : sélectionnez max (votre champ de clé_primaire) dans votre_nom_de_table ;
étape 2 : ALTER TABLE votre_nom_de_table AUTO_INCREMENT = value_u_got_from_step1 + 1 ;
PHP中文网2017-06-17 09:17:21
L'incrémentation automatique de l'identifiant a atteint la limite supérieure. Si vous insérez à nouveau des données, vous ne pouvez insérer que cette valeur d'identifiant, il y aura donc un conflit. Changez-la simplement en type bigint. Des centaines de milliers de données s'incrémenteront automatiquement. cette valeur. Vous devez vérifier vos règles d'auto-incrémentation et votre logique métier, sinon la limite sera atteinte très rapidement à votre vitesse
.