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
因此,當我創建唯一約束時,Oracle已經創建了索引。但是,如果我單獨創建索引它接受那些
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