2010-10-24 20 views
6

Ciao ragazzi domanda semplice, ma non riesco a trovare nulla.Come verificare se tutti i campi sono univoci in oracle?

Grazie

+1

Tutti i campi o tutti i record? – Quassnoi

+0

È necessario fornire molte più informazioni. Il minimo indispensabile è la struttura/definizione della/e tabella/e idealmente come una dichiarazione CREATE TABLE. Quindi alcuni dati di esempio e il risultato che ci si aspetta da quei dati di esempio. –

+0

tutti i campi di una colonna nella tabella – Burjua

risposta

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

Questo tornerà a voi tutti i valori MyColumn insieme al numero del loro verificarsi se il loro numero di occorrenze è superiore a uno (cioè non sono unici).

Se il risultato di questa query è vuoto, in questa colonna sono presenti valori univoci.

+0

Ok, grazie è quello che mi serve)))) – Burjua

1

un modo è quello di creare un indice univoco. se la creazione dell'indice fallisce, avete esistente informazioni duplicate, se un inserimento non riesce, avrebbe prodotto un duplicato ...

2

Un modo semplice per eseguire questa operazione è analizzare la tabella utilizzando DBMS_STATS. Dopo averlo fatto, puoi guardare dba_tables ... Guarda la colonna num_rows. L'aspetto di dab_tab_columns. Confronta il num_distinct per ogni colonna con il numero di righe. Questo è un modo per fare ciò che vuoi senza eseguire una scansione completa della tabella se sei preoccupato di influenzare un sistema di produzione su un tavolo enorme. Se vuoi ottenere risultati diretti, fai ciò che gli altri suggeriscono eseguendo la query sulla tabella con un gruppo per.

Problemi correlati