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

Comment puis-je supprimer les lignes en double d'une table Oracle tout en conservant une ligne unique ?

Linda Hamilton
Linda Hamiltonoriginal
2025-01-19 21:56:13357parcourir

How Can I Remove Duplicate Rows from an Oracle Table While Keeping One Unique Row?

Suppression des lignes en double dans les tables Oracle : une approche pratique

Lors du remplissage de la table Oracle, des lignes en double peuvent survenir involontairement, empêchant la création d'une clé primaire. Cet article détaille une méthode pour supprimer efficacement ces doublons tout en conservant une seule ligne unique.

Solution : Utiliser la rowidPseudocolonne

La pseudocolonne rowid d'Oracle fournit un identifiant unique pour chaque ligne. Nous en profitons pour identifier et supprimer les entrées redondantes.

L'instruction SQL suivante utilise rowid pour y parvenir :

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

Cette requête supprime les lignes dont rowid ne correspond pas au minimum rowid au sein de chaque groupe de doublons. La clause GROUP BY définit le regroupement en fonction des colonnes spécifiées (colonne1, colonne2, colonne3). Il ne restera qu'une seule ligne par combinaison unique de ces valeurs de colonne.

Pour une suppression précise des doublons, pensez à inclure toutes les colonnes dans la clause GROUP BY. Ajustez les noms de colonnes en fonction de la structure spécifique de votre table.

Cette approche garantit que seuls les enregistrements uniques sont conservés, ouvrant la voie à la création de clé primaire et à d'autres opérations de base 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!

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