是否可以为oracle中创建主键时创建的索引命名?

AVA*_*AVA 2 oracle indexing primary-key

据我了解,在主键创建期间:

a)如果主键字段或其组合上不存在索引,则 Oracle 在主键字段上创建新索引

b)如果主键字段或其组合上存在多个索引但未指定索引,则 Oracle 在主键字段上使用其中一个索引

c) Oracle 使用索引,如果主键字段或其组合上存在任何索引并且指定了索引名称

d) Oracle 在主键字段上使用一个索引,如果主键字段上只有一个索引或其组合,即使没有指定索引

请建议在情况 (a) 中是否可以使用 CREATE TABLE 语句本身将名称设置为由 oracle 创建的索引!

Hus*_*vik 5

默认情况下,索引的名称与约束的名称相同:

CREATE TABLE tbl (ID NUMBER CONSTRAINT pk_tbl PRIMARY KEY);
Run Code Online (Sandbox Code Playgroud)

约束命名是可选的,这就是为什么约束和隐式创建的索引都可以获得系统生成的名称。

您可以使用指定索引名称

CREATE TABLE tbl (ID NUMBER CONSTRAINT pk_tbl PRIMARY KEY USING INDEX (CREATE UNIQUE INDEX my_pk_index ON tbl(ID)));
Run Code Online (Sandbox Code Playgroud)