创建索引

时间:2016-04-29 15:36:26

标签: sql oracle

如何在sql中创建表后在主键上创建索引?

1 个答案:

答案 0 :(得分:0)

如果您使用主键约束创建了表,那么您已经拥有属于PK的字段的唯一索引;当您添加PK约束并且具有无意义的名称时,已创建此索引:

SQL> create table TEST_PK_IDX(id number primary key, descr varchar2(100));

Table created.

SQL> select index_name, uniqueness, column_name
  2  from user_ind_columns c
  3         inner join user_indexes i
  4           using (index_name)
  5  where i.table_name = 'TEST_PK_IDX';

INDEX_NAME           UNIQUENESS           COLUMN_NAME
-------------------- -------------------- --------------------
SYS_C007838          UNIQUE               ID

但是,如果您需要创建不同的索引,可以使用:

SQL> create index idx_test on test_pk_idx(descr);

Index created.

SQL> select index_name, uniqueness, column_name
  2  from user_ind_columns c
  3         inner join user_indexes i
  4           using (index_name)
  5  where i.table_name = 'TEST_PK_IDX';

INDEX_NAME           UNIQUENESS           COLUMN_NAME
-------------------- -------------------- --------------------
SYS_C007838          UNIQUE               ID
IDX_TEST             NONUNIQUE            DESCR

SQL>