본문 바로가기

Oracle/UNIQUE INDEX

UNIQUE INDEX

UNIQUE INDEX는 UNIQUE KEY의 기능과 동일하다
UNIQUE KEY를 특정 컬럼에 설정해 주면 자동으로 INDEX가 생성되며 USER_CONSTRAINT사전에서 검색할 수 있다.
UNIQUE INDEX를 생성하면 해당 컬럼은 UNIQUE KEY의 특성을 가지게 되고 USER_INDEXES, ALL_IND_COLUMNS에서 검색할 수 있다.
그러므로 UNIQUE INDEX, UNIQUE KEY는 기능과 성능상 동일하며 어떤것을 사용해도 된다.

drop table test;
create table test(num number, name varchar2(20));
desc test;
create unique index index_test on test(name);
insert into test values(1, 'a');
insert into test values(2, 'b');
select * from test;
insert into test values(3, 'b');--여기에서 오류발생

desc user_indexes;
select index_name, index_type from user_indexes where table_name='TEST';
select * from user_constraints where table_name='TEST';--검색결과 없음
select table_name from dictionary where table_name like 'ALL%';
desc all_ind_columns;
select index_name, column_name from all_ind_columns where table_name='TEST';
drop index index_test;
insert into test values(3, 'b');
select * from test;
create unique index index_test on test(name);--여기서 오류