파티션 테이블의 유니크 인덱스가 안 만들어집니다 1

by 양 [Oracle 기초] ORA-14039 [2024.03.13 21:56:13]


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; /* 성공하지만 부적절 */

어떻게 해야될까요

by 마농 [2024.03.13 23:09:52]

파티션키와 함께 결합인덱스로 만드세요.


by 양 [2024.03.15 23:47:45]

하지만 ㅠㅠ 그렇게 되면 유니크 제약조건에 의미가 없어집니다 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입