오라클 기본키 인덱스를 일반 인덱스로 대체하는 방법 알아보기~

이번 시간에는 오라클 데이터베이스에서 기본키 인덱스를 일반 인덱스로 대체하는 방법에 대해 알아보겠습니다. 이 방법은 기본키 인덱스가 굳이 필요 없는 테이블에 대하여, 기본키를 없애고 논-유니크 인덱스로 대체하는 방법입니다!

기본키를 일반 인덱스로 대체하는 작업 내용은 다음과 같은 순서로 진행할 예정입니다~ 😘

  • 기본키 인덱스 삭제
  • 대체 인덱스 생성
  • NULL 허용 여부 설정
  • 인덱스 대체

기본키 삭제

먼저, 기존의 기본키를 삭제해야 합니다. 이를 위해 ALTER TABLE 문을 사용합니다.

ALTER TABLE USER_NAME.TABLE_NAME DROP PRIMARY KEY CASCADE;

그리고 기존의 기본키에 해당하는 인덱스도 삭제합니다.

DROP INDEX USER_NAME.PRIMARY_KEY_INDEX_NAME;

대체 인덱스 생성

기본키 인덱스를 삭제하고, 해당 컬럼에 대한 새로운 인덱스를 생성할 차례입니다. 다음 쿼리는 새로운 인덱스를 생성하는 예시입니다. 컬럼 그룹은 대상 테이블에 맞추어 추가해 주세요.

CREATE INDEX USER_NAME.INDEX_NAME ON USER_NAME.TABLE_NAME
(COLUMN_NAME)
LOGGING
TABLESPACE TABLESPACE_NAME
PCTFREE    10
INITRANS   2
MAXTRANS   255
STORAGE    (
            INITIAL          64M
            NEXT             1M
            MINEXTENTS       1
            MAXEXTENTS       UNLIMITED
            PCTINCREASE      0
            BUFFER_POOL      DEFAULT
           )
NOPARALLEL;

NULL 허용 설정

마지막으로, 해당 컬럼에 대해 NULL 값을 허용하지 않도록 설정하겠습니다. 적어도 기본키였던만큼 'Not Null' 정도는 유지하려는 목적이랍니다. 필요 시 생략해도 괜찮을 것입니다.

ALTER TABLE TABLE_NAME MODIFY ( COLUMN_NAME NOT NULL );

이제 기본키 인덱스를 일반 인덱스로 대체하는 작업을 완료하였습니다!

댓글 쓰기
가져가실 때, 출처 표시 부탁드려요! 감사합니다. 💗