1、创建一个有DEFAULT的分区表 1、先创建主表 1 2 3 4 5 6 7 8 9 10 11 12 13 14 create table tbl_log ( id serial, create_time timestamp(0) without time zone, remark char(1) ) PARTITION BY RANGE (create_time); #因为是serial类型
1、创建一个有DEFAULT的分区表1、先创建主表
2、如果没有创建分区就直接插入数据会报错
3、创建分区
4、查看分区情况
2、有default 分区,再加分区因为有default 分区,再加分区,所以会报错
解决办法:以上添加分区报错,需要解绑default分区,之后再添加,如下 1、解绑Default分区
2、创建想要的分区
3、分区创建成功,分区创建之后需把DEFAULT分区连接。 连接DEFAULT分区报错,如下:
因为tbl_log_default分区内有2018-04-01的数据,把这个数据从tbl_log_default中导出到对应的分区,并清理tbl_log_default中的对应的数据
4、再次连接DEFAULT分区成功
3、没有default的分区创建没有default的分区,当插入的数据超过规划好的分区的时候会报错 1、创建1月份分区
插入2月的数据就会报错
4、给分区表ddl4.1、在原来没有主键的分区表加主键结论: 1、在主表加主键,主键为仅仅想要的主键,会报错,需要用想要的主键+分区键组合为主键 2、分区表可以单独添加主键 1.1、在主表加主键,主键为仅仅想要的主键,报错如下 must include all partitioning columns
1.2、在主表添加主键需要是想要的主键+分区键
1.3、可以给分区表单独添加主键
4.2、创建分区表时,就指定主键主键不包括分区键,报错提示must include all partitioning columns
修改语句,添加分区键也为主键,创建成功
4.3、分区表加字段,修改字段1、加字段,可以成功添加,在主表加字段,分区表会自动添加
2、直接在分区表加字段会报错
3、修改字段
|
2022-02-26
2022-09-22
2022-09-18
2022-09-22
2022-08-26