Maison > base de données > tutoriel mysql > le corps du texte

Comment pouvez-vous corriger les enregistrements en double après avoir créé un index non unique dans MySQL ?

Barbara Streisand
Libérer: 2024-10-30 05:48:28
original
245 Les gens l'ont consulté

How Can You Fix Duplicate Records After Creating a Non-Unique Index in MySQL?

Préserver l'intégrité des données avec des index uniques

Dans votre base de données, vous visiez à éviter les enregistrements en double en créant un index unique sur les champs A, B, C et D. Cependant, vous avez créé par erreur un index normal, ce qui a entraîné des insertions en double. Avec 20 millions d'enregistrements en jeu, vous hésitez naturellement à apporter des modifications.

Gestion des enregistrements en double avec des index uniques

Lorsque vous remplacez un index existant par un index unique ou en ajoutez un nouveau, Le comportement de MySQL dépend de l'existence ou non de doublons :

  • Normal ALTER TABLE : Si des doublons existent, l'opération échoue avec l'erreur 1062 (clé en double).
  • ALTER TABLE avec IGNORE (uniquement avant MySQL 5.7.4) : Supprime les doublons mais ne précise pas quelle ligne est conservée.
  • MySQL 5.7.4 ou version ultérieure : L'IGNORE La clause est supprimée et son utilisation entraîne une erreur.

Résolution étape par étape

Pour résoudre ce problème dans MySQL 5.7.4 ou version ultérieure, suivez ces étapes :

  1. Copiez les données dans une table temporaire.
  2. Tronquez la table d'origine.
  3. Créez l'INDEX UNIQUE sur les colonnes souhaitées.
  4. Copiez le les données dans la table d'origine à l'aide de INSERT IGNORE.
  5. Supprimez la table temporaire.

Cette méthode supprime efficacement les doublons tout en préservant les données restantes.

Solution alternative pour MySQL avant 5.7.4

Pour les versions MySQL antérieures à 5.7.4, vous pouvez utiliser la clause IGNORE dans votre instruction ALTER TABLE pour supprimer les doublons sans spécifier quelle ligne est conservée. Cependant, vous souhaiterez peut-être vous assurer d'avoir une sauvegarde de vos données avant de tenter cette opération.

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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!