Maison >base de données >tutoriel mysql >Comment puis-je supprimer efficacement les lignes en double d'une table Oracle ?

Comment puis-je supprimer efficacement les lignes en double d'une table Oracle ?

Linda Hamilton
Linda Hamiltonoriginal
2025-01-19 21:47:11499parcourir

How Can I Efficiently Remove Duplicate Rows from an Oracle Table?

Intégrité des données dans Oracle : élimination des lignes en double

Les entrées en double dans les tables Oracle peuvent compromettre l'intégrité des données, en particulier lors de l'établissement de clés primaires. Cet article présente une solution pour supprimer efficacement ces doublons.

Exploiter la rowidPseudocolonne

La pseudocolonne rowid d'Oracle propose un identifiant unique pour chaque ligne. Cela permet une stratégie de suppression précise :

<code class="language-sql">DELETE FROM your_table
WHERE rowid NOT IN
(SELECT MIN(rowid)
FROM your_table
GROUP BY column1, column2, column3);</code>

Voici une répartition :

  • your_table : Le tableau contenant les lignes en double.
  • column1, column2, column3 : Les colonnes définissant l'unicité. Ajoutez plus de colonnes à la clause GROUP BY si nécessaire.
  • La sous-requête sélectionne le minimum rowid pour chaque combinaison unique de colonnes.
  • La clause NOT IN supprime toutes les lignes dont rowid n'est pas le minimum, ne laissant qu'une seule instance de chaque enregistrement unique.

Cette approche nettoie efficacement votre table des entrées en double, garantissant ainsi l'intégrité des données pour les opérations ultérieures.

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