Erreur MySQL 1062 : duplication de clé primaire '0'
Vous avez rencontré un problème lors de la modification de la table momento_distribution, recevant l'erreur " 1062 - Entrée en double '0' pour la clé 'PRIMARY'". Cela pourrait indiquer un problème avec les données de la table.
La clé primaire, telle que définie dans la structure de votre table d'origine, était une combinaison des colonnes momento_id et momento_idmember. Cependant, après avoir ajouté une nouvelle colonne d'identifiant et l'avoir définie comme clé primaire, vous avez rencontré des doublons dans cette colonne, en particulier la valeur « 0 ».
Pour résoudre ce problème, vous pouvez essayer de spécifier la colonne d'identifiant. comme incrémentation automatique dans la définition de la table, comme indiqué ci-dessous :
CREATE TABLE `momento_distribution` ( `momento_id` INT(11) NOT NULL, `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, `id` INT(11) NOT NULL AUTO_INCREMENT, PRIMARY KEY (`id`), -- New primary key KEY `momento_distribution_FI_2` (`momento_idmember`), KEY `accepted` (`accepted`, `ext_member`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Alternativement, si vous avez déjà créé la colonne id, vous pouvez la modifier pour qu'elle s'incrémente automatiquement à l'aide du requête suivante :
ALTER TABLE `momento_distribution` CHANGE COLUMN `id` `id` INT(11) NOT NULL AUTO_INCREMENT, DROP PRIMARY KEY, ADD PRIMARY KEY (`id`); -- New primary key
En spécifiant la colonne id comme incrémentation automatique, vous vous assurez que chaque ligne a une valeur unique pour cette colonne, éliminant ainsi le problème du « 0 » en double. Cela vous permettra de modifier la structure de la table et d'attribuer la colonne id comme clé primaire sans perdre de données.
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!