更新时间:2024-06-29 GMT+08:00

分区管理函数

proc_add_partition (relname regclass, boundaries_interval interval)

描述:用于给开启自动创建分区功能的表添加分区。

返回值类型:void

备注:该函数运行时,会在现有分区boundary的基础上,创建多个时间范围为boundaries_interval的新分区,直到new_part_boundary – now_time >= 29 * boundaries_interval,之后再额外多创建一个分区,保证该函数运行时,一定会创建一个新分区 。

示例:

1
2
3
4
5
call proc_add_partition('my_schema.my_table', interval '1 day');
 proc_add_partition
--------------------

(1 row)

proc_drop_partition (relname regclass, older_than interval)

描述:用于给开启自动删除分区功能的表删除分区。

返回值类型:void

备注:该函数运行时,遍历表所有分区,并删除其中boundary小于(now_time - older_than)的分区;如果所有分区都满足删除条件,则保留一个分区,并truncate该表。

示例:

1
2
3
4
5
call proc_drop_partition('my_schema.my_table', interval '7 day');
 proc_drop_partition
--------------------

(1 row)

pg_partition_management_time(table_name, time)

描述:用来修改自增自减分区调度任务的执行时间,默认为创建自增分区表的时间。该函数仅8.3.0及以上版本支持。

返回值:SUCCESS,任务时间修改成功。

参数说明:

  • table_name为自增分区表表名,类型为name,
  • time为数据切换任务调度时间,类型为Time。

示例:

1
2
3
4
5
call pg_partition_management_time('partition_management_time','3:00');
 pg_partition_management_time 
------------------------------
 SUCCESS
(1 row)