postgresql 버전 : 16
하나의 대용량 테이블을 파티션테이블로 전환계획 중입니다.
seq컬럼을 pk로 사용하고, log_dt컬럼은 파티션키로 사용하고 싶습니다.
아래와 같이 파티션테이블을 생성 후 데이터를 넣어보면
2024년1월 데이터(log_dt : 20240101)에 seq값이 1을 넣은 상태에서
2024년 2월 데이터(log_dt : 20240201)에 seq값에 1을 넣으면 데이터가 중복되어야하는데 값이 들어가고 있습니다.
global index를 사용하면 될까요? 도움부탁드립니다 ㅜ
[파티션테이블 생성]
-- 상위테이블
create table a.test_log
( seq bigint not null,
user_id varchar(100) not null,
log_dt varchar(8), -- ex. 20240101
elapse_time varchar(100)
) partition by range(log_dt) ;
-- 하위테이블
create table a.test_log_p202401 partition of a.test_log for values from ('20240101') to ('20240201') ;
create table a.test_log_p202402 partition of a.test_log for values from ('20240201') to ('20240301') ;
(중략)
create table a.test_log_p202412 partition of a.test_log for values from ('20241201') to ('20250101') ;
2. pk 생성
alter table a.test_log_p202401 add primary key (seq);
alter table a.test_log_p202402 add primary key (seq);
(중략)
alter table a.test_log_p202412 add primary key (seq);
|