
Si vous utilisez la base de données Oracle, un problème commun est en double file dans les tableaux. Habituellement, cela se produit quand les contraintes uniques sont retirés au cours du chargement. Quelle que soit la mai-être la raison, vous pouvez supprimer des enregistrements en double. Dupliquer des registres ont des valeurs identiques pour toutes les colonnes (ou les colonnes qui font partie de la clé unique).
Il ya plus d'un moyen de supprimer des enregistrements en double. Supposons que Table_A a les données suivantes:
Col1 col2
------ -------
101 201
102 202
103 203
102 202
104 204
101 201
Regardons la première méthode.
- Une sauvegarde de votre table d'origine. Ceci est l'étape la plus importante!
- Assurez-vous que votre sauvegarde est bonne et vous pouvez restaurer la table d'origine en cas de besoin.
- Voici le code pour supprimer des enregistrements en double:
DELETE FROM Table_A une
WHERE ROWID! = (SELECT MAX (ROWID)
DE Table_A b
OÙ b.col1 = a.col1
ET b.col2 = a.col2);Oracle a un pseudo colonne appelée "ROWID", qui est unique pour chaque ligne dans un tableau. Ainsi, nous pouvons l'utiliser pour supprimer des enregistrements en double. Le code ci-dessus se trouve une seule pour les non-ROWID des enregistrements en double. Pour les enregistrements en double, il va supprimer un enregistrement à faible ROWID. S'il ya plus de deux colonnes qui composent la clé unique pour un enregistrement, alors vous devez inclure toutes les colonnes à condition WHERE. Il existe deux enregistrements en double dans l'exemple, il n'est pas question que nous supprimions record puisque toutes les colonnes ont les mêmes valeurs.
- Vérifiez vos résultats et d'engager vos travaux.
Maintenant, nous allons regarder une deuxième méthode.
- Une sauvegarde de votre table d'origine. C'est toujours l'étape la plus importante!
- Assurez-vous que votre sauvegarde est bonne et vous pouvez restaurer la table d'origine en cas de besoin.
- Créer une table temporaire avec des enregistrements en utilisant la clause DISTINCT.
- Supprimer tous les enregistrements de table d'origine.
- Insérez tous les enregistrements de table temporaire dans le tableau original.
- Vérifiez vos résultats et d'engager vos travaux.
Selon votre situation, vous pouvez choisir l'une des deux méthodes pour des résultats plus rapides. Des enregistrements en double peuvent être évités en utilisant les index unique. Unique de garanties que les indices des colonnes dans l'index ne sont pas des valeurs dupliquées.

Delicious
Digg
Google
Yahoo