产品概述
应用场景
节点规格
集群架构

CREATE TABLE test_range_partition(uid int,fdate character varying(32))PARTITION BY RANGE(fdate)(PARTITION p1 START ('2018-11-01') INCLUSIVE END ('2018-11-02') EXCLUSIVE,PARTITION p2 START ('2018-11-02') INCLUSIVE END ('2018-11-03') EXCLUSIVE,DEFAULT PARTITION pdefault);
CREATE TABLE test_range_partition_every_1(uid int,fdate date)partition by range (fdate)(PARTITION pn START ('2018-11-01'::date) END ('2018-12-01'::date) EVERY ('1 day'::interval),DEFAULT PARTITION pdefault);
CREATE TABLE test_list_partition(uid int,gender char(1))PARTITION BY LIST (gender)(PARTITION girls VALUES ('F'),PARTITION boys VALUES ('M'),DEFAULT PARTITION pdefault);
ALTER TABLE test_range_partition TRUNCATE PARTITION p1;
ALTER TABLE test_range_partition DROP PARTITION p1;
ALTER TABLE test_range_partition ADD PARTITION p3 START ('2018-11-03') INCLUSIVE END ('2018-11-04') EXCLUSIVE;
ERROR: cannot add RANGE partition "p3" to relation "test_range_partition" with DEFAULT partition "pdefault",解决办法可以参见滚动分区。ALTER TABLE test_range_partition SPLIT DEFAULT PARTITION START ('2018-11-03') INCLUSIVE END ('2018-11-04') EXCLUSIVE INTO (PARTITION p3, DEFAULT partition);
ALTER TABLE {table_name} EXCHANGE PARTITION {partition_name|FOR (RANK(number))|FOR (value)} WITH TABLE {cos_table_name} WITHOUT VALIDATION;
pg_partitionpg_partition_columnspg_partition_encodingpg_partition_rulepg_partition_templatespg_partitions
t2=# select * from pg_partitions where partitiontablename = 'test_range_partition_1_prt_p1';-[ RECORD 1 ]------------+---------------------------------------------------------------------------------------------------schemaname | publictablename | test_range_partitionpartitionschemaname | publicpartitiontablename | test_range_partition_1_prt_p1partitionname | p1parentpartitiontablename |parentpartitionname |partitiontype | rangepartitionlevel | 0partitionrank | 1partitionposition | 2partitionlistvalues |partitionrangestart | '2018-11-01'::character varying(32)partitionstartinclusive | tpartitionrangeend | '2018-11-02'::character varying(32)partitionendinclusive | fpartitioneveryclause |partitionisdefault | fpartitionboundary | PARTITION p1 START ('2018-11-01'::character varying(32)) END ('2018-11-02'::character varying(32))parenttablespace | pg_defaultpartitiontablespace | pg_default
t2=# select pg_get_partition_def('test_range_partition'::regclass,true);-[ RECORD 1 ]--------+---------------------------------------------------------------------------------------------------------------pg_get_partition_def | PARTITION BY RANGE(fdate)| (| PARTITION p1 START ('2018-11-01'::character varying(32)) END ('2018-11-02'::character varying(32)),| PARTITION p2 START ('2018-11-03'::character varying(32)) END ('2018-11-04'::character varying(32)),| DEFAULT PARTITION pdefault| )
文档反馈