Oracle
 sql >> Base de données >  >> RDS >> Oracle

Création d'index

Si vous avez créé la table avec la contrainte de clé primaire, alors vous avez déjà un index unique sur les champs appartenant à la PK ; cet index a été créé lors de l'ajout de la contrainte PK et porte un nom non significatif :

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

Cependant, si vous avez besoin de créer un index différent, vous pouvez utiliser :

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>