Forse c'è un INDEX
associato al PRIMARY KEY CONSTRAINT
, ed è anche chiamato PK_B
.
Puoi verificarlo come :
SELECT * FROM USER_INDEXES WHERE TABLE_NAME='<table_name>';
Se è vero, allora fai :
ALTER INDEX "PK_B" RENAME TO "PK_XYZ";
Aggiornamento:riguardo a ALTER INDEX
dichiarazione, alcuni punti importanti come menzionato da Justin nei commenti
Oracle crea implicitamente un UNIQUE
index per supportare il PRIMARY KEY CONSTRAINT
. Poiché l'indice ha lo stesso nome della chiave primaria e ora che la chiave primaria è stata modificata, è meglio per eliminare e ricreare nuovamente l'indice secondo la definizione della vecchia chiave primaria.
La mia conclusione :
- Il vincolo della chiave primaria viene applicato tramite un indice univoco.
- Se Oracle trova già un indice, univoco o non univoco, lo utilizza come chiave primaria.
- Se l'indice è stato inizialmente creato come non univoco, continuerà a essere visualizzato come non univoco, tuttavia sarà effettivamente un indice univoco.
Una buona dimostrazione e abbastanza dettagliata anche su altri aspetti, di Arup :Le chiavi primarie garantiscono l'unicità? Ripensaci.