2016-01-06 50 views
0

据我了解,在主键生成:
是否可以命名在oracle中创建主键时创建的索引?

一)甲骨文上创建prmary关键领域的新指标,如果主键字段或者其组合

B)不存在指数Oracle使用上prmary键字段的索引中的一个,如果一个以上的指数上的主键字段存在或不指定其组合,但索引

c)中 Oracle使用索引,如果在主键字段存在或指定其组合和索引名称的任何索引

d) Oracle使用一个在主键字段的索引,如果在主只存在一个指数关键字段或其组合索引未指定

如果(a)!请建议使用CREATE TABLE语句本身为oracle创建的索引设置名称的可能性!

回答

2

默认情况下,指数的名字是一样的约束的名称:

CREATE TABLE tbl (ID NUMBER CONSTRAINT pk_tbl PRIMARY KEY); 

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

您可以指定使用

CREATE TABLE tbl (ID NUMBER CONSTRAINT pk_tbl PRIMARY KEY USING INDEX (CREATE UNIQUE INDEX my_pk_index ON tbl(ID))); 
0

这里索引名是名称的例子:

CREATE TABLE regions 
    (region_id NUMBER NOT NULL, 
    region_name VARCHAR2(25), 
    constraint regions_pk primary key (region_id) 
    ); 

一)甲骨文上创建prmary关键领域的新指标,如果不存在索引上 主键字段或其组合

创建表格时不会有任何索引。首先它将创建表,然后使用该索引创建索引和主键。

二)Oracle使用上prmary关键领域的指标之一,如果任何索引 主键字段存在或者其组合,但指数不 指定

如果你已经有表并且在主键列上有多个索引并且想要创建主键,则需要指定using子句并传递要使用的索引。如果只有一个索引,那么它将自动使用该索引。

c)中Oracle使用索引,如果在主键字段 存在或它的组合和索引名称被指定

这是正确的任何索引。如果有多个索引,可以使用USING子句进行指定。

相关问题