Quizás haya un INDEX
asociado con la PRIMARY KEY CONSTRAINT
, y también se nombra como PK_B
.
Puede comprobarlo como:
SELECT * FROM USER_INDEXES WHERE TABLE_NAME='<table_name>';
Si eso es cierto, entonces haz:
ALTER INDEX "PK_B" RENAME TO "PK_XYZ";
Actualización:con respecto a ALTER INDEX
declaración, algunos puntos importantes mencionados por Justin en los comentarios
Oracle crea implícitamente un UNIQUE
índice para admitir la PRIMARY KEY CONSTRAINT
. Ya que el índice tiene el mismo nombre que la clave principal, y ahora que se modifica la clave principal, es mejor para eliminar y volver a crear el índice según la definición de la clave principal anterior.
Mi conclusión:
- La restricción de clave principal se aplica a través de un índice único.
- Si Oracle ya encuentra un índice, único o no único, lo usa como clave principal.
- Si el índice se creó inicialmente como no único, seguirá mostrándose como no único, sin embargo, en realidad será un índice único.
Una buena demostración y bastante detallada en otros aspectos también, por Arup:¿Las claves principales garantizan la singularidad? Piénsalo de nuevo.