无忧网站建设多少钱,wordpress主题 苏醒,网页设计图片切换,道路建设网站一般来说#xff0c;我们二级分区表都会使用模版#xff0c;如果没有使用模版特性#xff0c;那么就会报ERROR: no partitions specified at depth 2类似的错误。因为没有模版#xff0c;必须要显式指定分区。
当然我们在建表的时候#xff0c;如果没有指定#xff0c;那…一般来说我们二级分区表都会使用模版如果没有使用模版特性那么就会报ERROR: no partitions specified at depth 2类似的错误。因为没有模版必须要显式指定分区。
当然我们在建表的时候如果没有指定那么后面也可以通过alter table 语句进行添加。下面我们通过一个例子看一下。
CREATE TABLE sales (trans_id integer,ctime timestamp without time zone,region text
)DISTRIBUTED BY (trans_id) PARTITION BY RANGE(ctime)SUBPARTITION BY LIST(region)(START (2023-08-18 00:00:00::timestamp without time zone) END (2023-08-19 00:00:00::timestamp without time zone) WITH (tablenamesales_1_prt_1, appendonlyfalse)(SUBPARTITION usa VALUES(usa) WITH (tablenamesales_1_prt_1_2_prt_usa, appendonlyfalse),SUBPARTITION asia VALUES(asia) WITH (tablenamesales_1_prt_1_2_prt_asia, appendonlyfalse),SUBPARTITION europe VALUES(europe) WITH (tablenamesales_1_prt_1_2_prt_europe, appendonlyfalse)));#如果只指定一级分区添加分区会报错
alter table sales add partition sale_3 start (date 2023-08-20) inclusive end (date 2023-08-21) exclusive ;
NOTICE: CREATE TABLE will create partition sales_1_prt_sale_3 for table sales
ERROR: no partitions specified at depth 2
#必须显式指定才可以添加成功
alter table sales add partition sale_2
START (2023-08-19 00:00:00::timestamp without time zone) END (2023-08-20 00:00:00::timestamp without time zone) (SUBPARTITION usa VALUES(usa),SUBPARTITION asia VALUES(asia) ,SUBPARTITION europe VALUES(europe) );
#插入一些测试数据
insert into sales select generate_series(1,10000000) ,current_date ,usa;
insert into sales select generate_series(1,10000000) ,current_date ,asia;
insert into sales select generate_series(1,10000000) ,current_date ,europe;#添加模版就算之前有历史数据也是瞬间完成
ALTER TABLE sales
SET SUBPARTITION TEMPLATE(SUBPARTITION usa VALUES(usa) WITH (tablenamesales),SUBPARTITION asia VALUES(asia) WITH (tablenamesales),SUBPARTITION europe VALUES(europe) WITH (tablenamesales))
;
NOTICE: adding level 1 subpartition template specification for relation sales
NOTICE: CREATE TABLE will create partition sales_1_prt_subpartition_template for table salesNOTICE: CREATE TABLE will create partition sales for table sales_1_prt_subpartition_template
NOTICE: CREATE TABLE will create partition sales for table sales_1_prt_subpartition_template
NOTICE: CREATE TABLE will create partition sales for table sales_1_prt_subpartition_template
ALTER TABLE#这次只指定一级分区就可以添加成功
alter table sales add partition sale_3 start (date 2023-08-20) inclusive end (date 2023-08-21) exclusive ;
NOTICE: CREATE TABLE will create partition sales_1_prt_sale_2 for table sales
NOTICE: CREATE TABLE will create partition sales_1_prt_sale_2_2_prt_usa for table sales_1_prt_sale_2
NOTICE: CREATE TABLE will create partition sales_1_prt_sale_2_2_prt_asia for table sales_1_prt_sale_2
NOTICE: CREATE TABLE will create partition sales_1_prt_sale_2_2_prt_europe for table sales_1_prt_sale_2
ALTER TABLE
总结 建表的时候最好添加二级分区以后的模版模版也可以后面变更如果不加模版添加分区的时候必须指定子分区所以分区级别越多越复杂。