sql >> Databasteknik >  >> RDS >> Oracle

Ändra ett icke-unikt index till ett unikt index

Du kan inte konvertera ett icke-unikt index till ett unikt index.

(Det är svårt att säga vad som inte kan göras. Jag baserar det här svaret på att titta på ÄNDRA INDEX sidan i SQL Language Reference, söker efter ordet UNIQUE och hittar inga relevanta tips. Jag tittade på 11g istället för 10g, men det är förmodligen bättre i det här fallet eftersom det finns några funktioner som finns i 10g men som bara är dokumenterade i 11g.)

Du kan dock använda ett icke-unikt index för en unik begränsning. Men det finns några prestandaöverväganden :ett unikt index skulle vara mindre och snabbare.

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. Reflektion i PLSQL?

  2. ORA-00903:ogiltigt tabellnamn på PreparedStatement

  3. Hur loggar man in i en Oracle-databas?

  4. Mysql existerar vs IN -- korrelerad underfråga vs underfråga?