Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Alterar um índice não exclusivo para um índice exclusivo


Você não pode converter um índice não exclusivo em um índice exclusivo.

(É difícil dizer o que não pode ser feito. Estou baseando esta resposta em ALTER INDEX página do SQL Language Reference, procurando a palavra UNIQUE e não encontrando nenhuma dica relevante. Eu olhei para 11g em vez de 10g, mas provavelmente é melhor neste caso porque existem alguns recursos que existem em 10g, mas estão documentados apenas em 11g.)

No entanto, você pode usar um índice não exclusivo para uma restrição exclusiva. Mas existem alguns considerações de desempenho :um índice exclusivo seria menor e mais rápido.
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;