Maison  >  Article  >  base de données  >  Voici quelques options de titre, en gardant à l'esprit le format de la question et l'objet de l'article : **Option 1 (directe et concise) :** Comment supprimer les doublons après avoir créé un index non unique dans MySQL ?

Voici quelques options de titre, en gardant à l'esprit le format de la question et l'objet de l'article : **Option 1 (directe et concise) :** Comment supprimer les doublons après avoir créé un index non unique dans MySQL ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-25 12:37:02856parcourir

Here are a few title options, keeping in mind the question format and the article's focus:

**Option 1 (Direct & Concise):** 
How to Remove Duplicates After Creating a Non-Unique Index in MySQL?

**Option 2 (More Specific):**
MySQL Duplicate Rows: How to

Suppression des doublons avec un index unique

Dans le scénario donné, des doublons ont été insérés par inadvertance dans une table en raison d'une mauvaise configuration d'un index sur les colonnes A, B, C et D. Malgré l'objectif d'éviter les doublons, l'index créé était un index normal plutôt qu'un index unique.

Exécution de requête

Si si l'on tente de modifier l'index existant de normal à unique ou d'ajouter un nouvel index unique pour les mêmes colonnes, la requête échouera en raison de la présence d'enregistrements en double.

Solution alternative avec IGNORE Option (pré-5.7.4)

L'utilisation de l'option IGNORE dans la syntaxe ALTER TABLE permet de supprimer les doublons :

<code class="sql">ALTER IGNORE TABLE mytable ADD UNIQUE INDEX myindex (A, B, C, D);</code>

Cela supprimera les lignes en double, mais c'est important de noter que la documentation ne précise pas quelles lignes seront conservées.

Solution pour MySQL 5.7.4 et supérieures

Pour les versions 5.7.4 et supérieures, IGNORER n'est plus pris en charge dans ALTER TABLE. Cependant, l'approche suivante peut être utilisée :

  1. Copiez les données dans une table temporaire.
  2. Tronquez la table d'origine.
  3. Créez un index unique sur la table .
  4. Réinsérez les données dans la table d'origine à l'aide de INSERT IGNORE.

Ce processus supprimera les doublons lors de l'opération INSERT.

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!

Déclaration:
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