Programming/Oracle

PK인덱스 컬럼 순서 변경 하기!

초록깨비 2022. 5. 24. 13:48
728x90

PK인덱스 컬럼 순서 변경 

    변경 전 :  C1 + C2 + C3
    변경 후 :  C1 + C3 + C2
 

1. 신규 Unique index 생성
   create unique index uk_emp on emp (c1, c3, c2) nologging ;
   

   alter index uk_emp logging ;

 

2. 기존 PK 제약조건을 삭제
    alter table emp drop constraint pk_emp ;

3. 신규 PK 제약조건 생성
   alter table emp
        add constraint pk_emp primary key (c1, c3, c2);

4. 신규 Unique 인덱스명을 PK 인덱스명으로 변경
    alter index uk_emp rename to pk_emp ;

 

 

 

[ 예제 ] 

    변경 전 pk :  PART_DIV + PART_NO + PART_TYPE + BRAND + SEASON + SEASON_YEAR +

                     SALE_MONTH + ITEM_LS + FDATE     

    변경 후 pk : PART_DIV + PART_NO + PART_TYPE + BRAND + SEASON + SEASON_YEAR +

                     SALE_MONTH + FDATE + ITEM_LS

 

     

       1) 신규 Unique index 생성

             create unique index uk_ta_sm030 on 

                   ta_sm030(part_div,part_no,part_type,brand,season,season_year,sale_month,item_ls,fdate)

                        tablespace erp_index nologging parallel 8 ;


            alter index uk_ta_sm030 logging parallel 1 ;

 

       2) 기존 PK 제약조건을 삭제

            alter table ta_sm030 drop constraint pk_sm030 ;

 

       3) 신규 PK 제약조건 생성
            alter table ta_sm030 add  constraint pk_sm030 primary key

                   (part_div,part_no,part_type,brand,season,season_year,sale_month,item_ls,fdate);

 

       4) 인덱스명으로 변경
            alter index uk_ta_sm030 rename to pk_sm030 ;




728x90