在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" ) )
在这一点上,我得到: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" ) )
有用.那么如何正确地使用其所有相关资源重命名主键,以便可以重用其名称?
Ton*_*ews 19
有一个与主键约束相关联的索引,它可能仍称为"PK_Mig1".试试这个:
ALTER INDEX "PK_Mig1" RENAME TO "PK_XXX";
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
23198 次 |
| 最近记录: |