On Oracle, I create a table like this:
CREATE TABLE "Mig1"( "Id" INTEGER NOT NULL , CONSTRAINT "PK_Mig1" PRIMARY KEY ( "Id" ) )
Then, I rename the PK:
ALTER TABLE "Mig1" RENAME CONSTRAINT "PK_Mig1" TO "PK_XXX"
Then, I rename the table:
ALTER TABLE "Mig1" RENAME TO "XXX"
Then, I try to create another table that uses the name of the previously renamed table:
CREATE TABLE "Mig1"( "Id" INTEGER NOT NULL , CONSTRAINT "PK_Mig1" PRIMARY KEY ( "Id" ) )
At this point I get: An error occurred: ORA-00955: name is already used by an existing object
. And this is because somehow the primary key of the first table is still around in some way although it was renamed. If I try to create the second table like this:
CREATE TABLE "Mig1"( "Id" INTEGER NOT NULL , CONSTRAINT "YYY" PRIMARY KEY ( "Id" ) )
it works. So how do I rename the primary key correctly with all of its associated resources such that its name can be reused?