Maison > base de données > tutoriel mysql > Comment réparer l'erreur MySQL 1062 : entrée en double « 0 » pour la clé primaire ?

Comment réparer l'erreur MySQL 1062 : entrée en double « 0 » pour la clé primaire ?

Patricia Arquette
Libérer: 2024-12-29 07:53:14
original
574 Les gens l'ont consulté

How to Fix MySQL Error 1062: Duplicate Entry '0' for Primary Key?

Dépannage de l'erreur MySQL : entrée en double « 0 » pour la clé primaire

Vous avez rencontré une erreur en essayant de modifier la clé primaire de la table momento_distribution dans MySQL. Le message d'erreur "1062 - Entrée en double '0' pour la clé 'PRIMARY'" indique que la nouvelle colonne de clé primaire contient des valeurs en double.

Analyse

Après examen, vous avez découvert que la nouvelle colonne créée La colonne id a la valeur « 0 » dans toutes les lignes. Ce conflit empêche l'attribution d'une clé primaire unique en raison de la présence d'enregistrements en double.

Solution

Pour résoudre ce problème, vous devez vous assurer que la colonne de clé primaire contient des valeurs uniques. L'approche la plus courante consiste à incrémenter automatiquement la colonne, ce qui générera automatiquement des valeurs uniques pour chaque nouvelle ligne.

Modifier la création de table :

CREATE TABLE `momento_distribution`
  (
     `momento_id`       INT(11) NOT NULL AUTO_INCREMENT,
     `momento_idmember` INT(11) NOT NULL,
     `created_at`       DATETIME DEFAULT NULL,
     `updated_at`       DATETIME DEFAULT NULL,
     `unread`           TINYINT(1) DEFAULT '1',
     `accepted`         VARCHAR(10) NOT NULL DEFAULT 'pending',
     `ext_member`       VARCHAR(255) DEFAULT NULL,
     PRIMARY KEY (`momento_id`, `momento_idmember`),
     KEY `momento_distribution_FI_2` (`momento_idmember`),
     KEY `accepted` (`accepted`, `ext_member`)
  )
ENGINE=InnoDB
DEFAULT CHARSET=latin1$$
Copier après la connexion

Modifier le tableau existant :

ALTER TABLE `momento_distribution`
  CHANGE COLUMN `id` `id` INT(11) NOT NULL AUTO_INCREMENT,
  DROP PRIMARY KEY,
  ADD PRIMARY KEY (`id`);
Copier après la connexion

Remarque : Cela suppose que la colonne id existe déjà. Si ce n'est pas le cas, vous devrez le créer à l'aide de l'instruction ALTER.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal