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

Ændre et ikke-unik indeks til et unikt indeks

Du kan ikke konvertere et ikke-unikt indeks til et unikt indeks.

(Det er svært at sige, hvad der ikke kan gøres. Jeg baserer dette svar på at se på ÆNDRINGSINDEKS siden i SQL Language Reference, søger efter ordet UNIQUE, og finder ingen relevante tip. Jeg kiggede på 11g i stedet for 10g, men det er nok bedre i dette tilfælde, fordi der er nogle få funktioner, der findes i 10g, men som kun er dokumenteret i 11g.)

Du kan dog bruge et ikke-unik indeks til en unik begrænsning. Men der er nogle ydelsesovervejelser :et unikt indeks ville være mindre og hurtigere.

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;


  1. ReplicationManager kastede en undtagelse ved at åbne en forbindelse

  2. Skrivning til MySQL-database med pandaer ved hjælp af SQLAlchemy, to_sql

  3. CakePHP indlejrer to udvalgte forespørgsler

  4. GeoDjango på Windows:Kunne ikke finde GDAL-biblioteket / OSError:[WinError 126] Det angivne modul kunne ikke findes