Možná existuje INDEX
spojené s PRIMARY KEY CONSTRAINT
a je také pojmenován jako PK_B
.
Můžete to zkontrolovat jako :
SELECT * FROM USER_INDEXES WHERE TABLE_NAME='<table_name>';
Pokud je to pravda, udělejte to:
ALTER INDEX "PK_B" RENAME TO "PK_XYZ";
Aktualizace:týkající se ALTER INDEX
prohlášení, pár důležitých bodů, jak je zmínil Justin v komentářích
Oracle implicitně vytváří UNIQUE
index pro podporu PRIMARY KEY CONSTRAINT
. Protože má index stejný název jako primární klíč, a nyní, když se primární klíč upravuje, je lepší zahodit a znovu vytvořit index podle definice starého primárního klíče.
Můj závěr:
- Omezení primárního klíče je vynuceno prostřednictvím jedinečného indexu.
- Pokud již Oracle najde index – jedinečný nebo nejedinečný – použije jej jako primární klíč.
- Pokud byl index původně vytvořen jako nejedinečný, bude se nadále zobrazovat jako nejedinečný, ale ve skutečnosti se bude jednat o jedinečný index.
Dobrá ukázka a docela podrobná i o dalších aspektech, od Arup:Primární klíče zaručují jedinečnost? Zamyslete se znovu.