私はテーブルオラクル:シングル、マルチカラムインデックスまたは2つの列インデックス
create table1(
column1 number(10,
column2 number(10),
column3 number(10)
);
column1
が主キー column2
とcolumn3
が、私は2列
である必要があり
alter table table1
add constraint table1_contr1 unique(column1,column2)
using index tablespace tbs1;
インデックスを作成するとき両方の列に
create index table1_idx1 on table1(column1,coulmn2);
ERROR at line 1:
ORA-01408: such column list already indexed
したがって、私は一意制約を作成するときにすでに索引を作成しています。私は別にそれがそれらの
create index table1_idx1 on table1(column1);
create index table2_idx2 on table2(column2);
を受け付けてインデックスを作成した場合でも、今、私の質問は、両方の列に一意制約をした後、私はまだ、各列にインデックスを作成する心配する必要はありますか?オブジェクトにアクセスする際に、各列のインデックスがないとパフォーマンスに影響はありますか?
これはoracle 11R2です。
'column2'と' column3'が外部キーであると言うとき、 'column2、column3'のコンビネーションはコンポジットプライマリキーを持つ単一の親テーブルの外部キーですか?あるいは、 'column2'と' column3'は親テーブルを単一カラムの主キーで区切るための外部キーですか? 'column1'がすでに主キーであれば、なぜあなたは' column1'と 'column2'の組み合わせに対してユニーク制約を作成していますか? 'column1'はすでにユニークなので、それと他のものの組み合わせは一意になります。 'col2、col3'に一意の制約を作成しているということですか? –
申し訳ありませんが、誤植です。私は(col2、col3)に一意制約を作成しています。 – user2824874