2010-10-24 5 views
6

Salut les gars question simple, mais ne trouve rien.Comment vérifier si tous les champs sont uniques dans Oracle?

Remerciements

+1

Tous les champs ou tous les enregistrements? – Quassnoi

+0

Vous devez fournir beaucoup plus d'informations. Le strict minimum est la structure/définition de votre table (s) idéalement comme une instruction CREATE TABLE. Ensuite, quelques exemples de données et le résultat que vous attendez de ces données d'échantillon. –

+0

tous les champs d'une colonne dans le tableau – Burjua

Répondre

24
SELECT myColumn, COUNT(*) 
FROM myTable 
GROUP BY myColumn 
HAVING COUNT(*) > 1 

Cela vous ramènera à toutes les valeurs de mycolumn ainsi que le nombre de leur occurence si leur nombre d'occurrences est supérieur à un (c'est-à-dire qu'elles ne sont pas uniques).

Si le résultat de cette requête est vide, vous avez des valeurs uniques dans cette colonne.

+0

Ok, merci c'est ce dont j'ai besoin)))) – Burjua

1

Une façon consiste à créer un index unique. si la création d'index échoue, vous avez d'info double existant, si un insert échoue, il aurait produit un double ...

2

Une façon simple de procéder consiste à analyser la table à l'aide de DBMS_STATS. Après cela, vous pouvez regarder dba_tables ... Regardez la colonne num_rows. Le regard sur dab_tab_columns. Comparez le num_distinct pour chaque colonne au nombre de lignes. C'est un moyen de faire ce que vous voulez sans effectuer une analyse complète de la table si vous avez peur d'affecter un système de production sur une table énorme. Si vous voulez des résultats directs, faites ce que les autres suggèrent en exécutant la requête par rapport à la table avec un groupe.

Questions connexes