В Oracle я создаю такую таблицу:
CREATE TABLE "Mig1"( "Id" INTEGER NOT NULL , CONSTRAINT "PK_Mig1" PRIMARY KEY ( "Id" ) )
Затем я переименовываю ПК:
ALTER TABLE "Mig1" RENAME CONSTRAINT "PK_Mig1" TO "PK_XXX"
Затем я переименовываю таблицу:
ALTER TABLE "Mig1" RENAME TO "XXX"
Затем я пытаюсь создать другую таблицу, в которой используется имя ранее переименованной таблицы:
CREATE TABLE "Mig1"( "Id" INTEGER NOT NULL , CONSTRAINT "PK_Mig1" PRIMARY KEY ( "Id" ) )
В этот момент я получаю: An error occurred: ORA-00955: name is already used by an existing object
. И это потому, что каким-то образом первичный ключ первой таблицы все еще существует, хотя он был переименован. Если я попытаюсь создать вторую таблицу следующим образом:
CREATE TABLE "Mig1"( "Id" INTEGER NOT NULL , CONSTRAINT "YYY" PRIMARY KEY ( "Id" ) )
оно работает. Итак, как мне правильно переименовать первичный ключ со всеми связанными с ним ресурсами, чтобы его имя можно было использовать повторно?