当我尝试在字段MyId上添加一个已排序的ASC索引时,oracle sql开发人员工具说:
Index MyIdSortedIndex is defined identically to constraint PK_MyTable
CREATE TABLE MyTable
( "MyId" NVARCHAR2(50),
"DESCRIPTION" NVARCHAR2(200),
CONSTRAINT "PK_MyTable" PRIMARY KEY ("MyId")
)
如何在Oracle中的表主键MyId上设置已排序的ASC索引?
答案 0 :(得分:2)
它告诉您不需要新索引,因为您已经在“MyId”上按升序排列了一个名为“PK_MyTable”的索引。向表中添加主键约束时,Oracle会自动添加相同名称的索引以帮助强制执行,从而按升序索引约束的列(因为升序是默认方向)。
如果您不想使用Oracle自动创建的索引,您可以执行以下操作:
CREATE TABLE MyTable
( "MyId" NVARCHAR2(50),
"DESCRIPTION" NVARCHAR2(200),
);
CREATE INDEX MyIdSortedIndex ON MyTable ("MyId" ASC);
ALTER TABLE MyTable Add CONSTRAINT "PK_MyTable" PRIMARY KEY ("MyId");
由于您的索引在添加主键时已经存在,因此Oracle将使用该索引而不是创建自己的索引。