在Oracle上,我创建一个这样的表:
CREATE TABLE "Mig1"( "Id" INTEGER NOT NULL,CONSTRAINT "PK_Mig1" PRIMARY KEY ( "Id" ) )
然后,我重命名PK:
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" ) )
此时我得到:发生错误:ORA-00955:名称已被现有对象使用.这是因为不知何故,第一张表的主要关键是仍然以某种方式重新命名.如果我尝试创建这样的第二个表:
CREATE TABLE "Mig1"( "Id" INTEGER NOT NULL,CONSTRAINT "YYY" PRIMARY KEY ( "Id" ) )
存在与主键约束相关联的索引,并且它可能仍然称为“PK_Mig1”.尝试这个:
ALTER INDEX "PK_Mig1" RENAME TO "PK_XXX";