programing

USING 인덱스 절

cafebook 2023. 9. 25. 23:06
반응형

USING 인덱스 절

db 패치에서 다음 문장을 보았습니다.

ALTER TABLE tablename ADD PRIMARY KEY (somepk_columnname) USING INDEX;

USING INDEX가 여기서 무엇을 하는지 찾아보고 싶었지만, 몇 가지 스토리지 특정한 것을 지정할 수 있도록 구글에서만 받았습니다.

제 질문은, 여기서 정확히 무슨 일이 벌어지는지 입니다.db는 여기에 일부 기본값을 사용합니까?기본 테이블스페이스에서 PK에 대한 인덱스를 생성하시겠습니까?기본값당 pk마다 인덱스가 생성된다고 생각했는데...

http://docs.oracle.com/cd/B28359_01/server.111/b28286/clauses002.htm#SQLRF52209

인덱스를 사용하여 제약 조건 적용

고유 또는 기본 키 제약 조건의 상태를 정의할 때 Oracle이 제약 조건을 적용하는 데 사용할 인덱스를 지정하거나 Oracle이 제약 조건을 적용하는 데 사용할 인덱스를 생성하도록 지시할 수 있습니다.

using_index_clause 고유한 키 제약 조건 또는 기본 키 제약 조건을 활성화하는 경우에만 using_index_clause를 지정할 수 있습니다.using_index_clause의 절은 순서에 상관없이 지정할 수 있지만 각 절은 한 번만 지정할 수 있습니다.

schema.index를 지정하면 Oracle은 지정된 인덱스를 사용하여 제약 조건을 적용하려고 합니다.Oracle이 인덱스를 찾을 수 없거나 인덱스를 사용하여 제약 조건을 적용할 수 없는 경우 Oracle은 오류를 반환합니다.

create_index_statement를 지정하면 Oracle은 인덱스를 생성하고 이를 사용하여 제약 조건을 적용하려고 합니다.Oracle이 인덱스를 생성할 수 없거나 인덱스를 사용하여 제약 조건을 적용할 수 없는 경우 Oracle은 오류를 반환합니다.

기존 인덱스를 지정하지 않거나 새 인덱스를 만들지 않으면 오라클이 인덱스를 만듭니다.이 경우:

인덱스는 제약 조건과 동일한 이름을 받습니다.

테이블이 분할된 경우 고유 키 또는 기본 키 제약 조건에 대해 로컬 또는 글로벌 분할 인덱스를 지정할 수 있습니다.

위의 답변이 큰 도움이 되었지만, 저의 고유한 키에 대해서도 특정 테이블 공간을 사용하고 싶었습니다.효과가 있었습니다.

alter table tablename add constraint uk_name unique (col1, col2) using index tablespace tablespace_name;

언급URL : https://stackoverflow.com/questions/23243479/using-index-clause

반응형