プライマリキーと異なるキーや名前の索引を作成する
プライマリキーを定義するとデフォルトでは同じキーで同じ名前を持つユニーク索引が作成されますが、実は異なるキーや名前の索引でも作成することができます。
作成方法
以下のようにUSING INDEXでcreate index文を指定すると索引の定義を自身で指定することができます。ただし、索引キーの左端はプライマリキーと一致している必要があります。 以下のケースではプライマリキーはcol1のため、col1は必ず最初のキーに指定する必要があります。
--作成方法1 create table TBL1 (col1 number,col2 number, constraint TBL1_PK primary key (COL1) using index (create index TBL1_idx1 on TBL1(col1,col2) nologging )); --作成方法2 create table TBL1 (col1 number,col2 number); alter table tbl1 add constraint TBL1_PK primary key(col1) using index (create index TBL1_idx1 on TBL1(col1,col2) nologging );
なお、この作成方法で作成するとプライマリキーの削除時に索引だけ残ってしまうという挙動の違いがでます。プライマリキー削除時に索引も一緒に作成したい場合は以下のようにdrop index句を指定します。
alter table tbl1 drop primary key drop index;