/ / Erreur # 1062 Entrée en double dans Mysql pour la clé primaire - mysql

Erreur # 1062 Entrée en double dans Mysql pour la clé primaire - mysql

J'ai une grosse table MySQL "docs" (plus de 3 000 000 de lignes).
Ce tableau a la colonne id --- clé primaire non signée et did ----- non signé.
Parfois, certaines lignes sont supprimées. Mais j'ai besoin de cette auto-incrémentation aller 1234 et non 1479.
J'exécute la requête SQL:

update docs set id=@num:=@num+1 where 0 in(select @num:=0)

et recevez l'erreur # 1062.

2 questions: 1. Pourquoi ai-je une entrée en double pour la clé principale? 2. Comment puis-je les supprimer?

Réponses:

0 pour la réponse № 1

Mon idée est plus simple (supprimer et ajouter primaire):
ALTER TABLE docsLAISSEZ TOMBER id;
ALTER TABLE docs AJOUTER id INT UNSIGNED NOT NULL AUTO_INCREMENT FIRST, AJOUTER LA CLÉ PRIMAIRE (id);