Study
[Postgresql] CTAS을 쓰면서 partition table을 그대로 옮길 수 있는 방법
monitor
2023. 4. 20. 22:19
CTAS로 기존 테이블 데이터를 옮김과 동시에 파티션 테이블을 구성하고 싶었는데 딱히 떠오르는 방법이 없어서 쓴 방법이다.
우선 옮기기 위한 PARTITIONED TABLE을 만든다.
CREATE TABLE <table_name> PARTITION BY (<column_name>);
기존의 파티셔닝 테이블만 CTAS로 따로 만들어 둔다.
CREATE TABLE <partition_table_name> AS (SELECT * FROM <selected_partitioned_table_name>);
그리고, 처음에 만든 테이블에 붙여둔다.
ALTER TABLE <table_name> ATTACH PARTITION <partition_table_name> FOR VALUES 파티션범위명세
이상이다.
대용량의 데이터를 옮길때는 쓸 만 하나 300M 미만이라면 차라리 INSERT 해서 옮기는 것이 나은 듯하다.