Может ли кто-нибудь уточнить, в чем цель уникального индекса без уникального ограничения (Oracle)? Например,
create table test22(id int, id1 int, tmp varchar(20));
create unique index idx_test22 on test22(id);
insert into test22(id, id1, tmp) values (1, 2, 'aaa'); // ok
insert into test22(id, id1, tmp) values (1, 2, 'aaa'); // fails, ORA-00001: unique
// constraint (TEST.IDX_TEST22) violated
Пока это похоже на ограничение. Но
create table test33(id int not null primary key,
test22_id int not null,
foreign key(test22_id) references test22(id) );
также терпит неудачу с "ORA-02270: no matching unique or primary key for this column-list"
.
Я совершенно смущен этим поведением. Есть ли ограничение или нет?
Существует много статей, объясняющих, почему возможно иметь уникальное ограничение без уникального индекса; это понятно и имеет смысл. Однако я не понимаю причину уникального индекса без ограничений.