2023년도 강의 테이블 (4개의 레인지 파티션:YYYYMM)
1)2023_1분기(202304)
2) 2023_2분기(202307)
3) 2023_3분기(202310)
4) 2023_4분기(202401)
각 분기별 강의ID가 존재하며, ID 컬럼은 LOCAL 파티션에서는 유일함.
전체 테이블(전체 파티션)에서는 ID 중복이 존재하지만, LOCAL 내에서는 유일함
create table LEC(YYYYMM varchar2(8),NAME number,ID NUMBER)
partition by range (YYYYMM)(
partition p202301 values less than ('202304'),
partition p202302 values less than ('202307'),
partition p202303 values less than ('202310'),
partition p202304 values less than ('202401')
);
목표 :
CREATE UNIQUE INDEX LEC_UQ ON LEC(ID) LOCAL; /* 에러 */
/* ORA-14039: 열을 분할영역한 것은 UNIQUE 인덱스로 키 열의 부분 집합을 폼 합니다 */
그렇다고 GLOBAL로 만들기애는 전체 파티션 기준으로 중복값이 있어 적절하지 않습니다.
CREATE UNIQUE INDEX LEC_UQ ON LEC(ID) GLOBAL; /* 성공하지만 부적절 */
어떻게 해야될까요
파티션키와 함께 결합인덱스로 만드세요.
하지만 ㅠㅠ 그렇게 되면 유니크 제약조건에 의미가 없어집니다