Oracle
 sql >> Database >  >> RDS >> Oracle

Modificare un indice non univoco in un indice univoco

Non puoi convertire un indice non univoco in un indice univoco.

(È difficile dire cosa non si può fare. Sto basando questa risposta guardando il ALTER INDEX pagina di SQL Language Reference, cercando la parola UNIQUE e non trovando alcun suggerimento rilevante. Ho considerato 11 g invece di 10 g, ma probabilmente è meglio in questo caso perché ci sono alcune caratteristiche che esistono in 10 g ma sono documentate solo in 11 g.)

Tuttavia, puoi utilizzare un indice non univoco per un vincolo univoco. Ma ci sono alcuni considerazioni sulle prestazioni :un indice univoco sarebbe più piccolo e veloce.

create table my_table(a number);

create index my_table_index on my_table(a);

alter table my_table add constraint my_table_unique unique (a)
    using index my_table_index;