pg_cron插件使用例

--天分区函数
CREATE OR REPLACE FUNCTION create_tab_part_day() RETURNS integer
    LANGUAGE plpgsql AS
$$
DECLARE
		--表名拼接串
    dateStr varchar;
		--起
		startStr varchar;
		--止
		endStr varchar;
BEGIN
    SELECT to_char(current_date+interval'1 day','YYYYMMDD') INTO dateStr;
		SELECT to_char(current_date+interval'1 day', 'YYYY-MM-DD') INTO startStr;
		SELECT to_char(current_date+interval'2 day', 'YYYY-MM-DD') INTO endStr;
    EXECUTE
		--根据需求在串内添加表空间 tablespace TBS_APTS_CM
        format('CREATE TABLE BUSVIOLINFOGS_test_p%1$s PARTITION OF BZ_BUSVIOLINFOGS_test FOR VALUES FROM (%2$I) TO (%3$I) ;', dateStr,startStr,endStr);
    RETURN 1;
END;
$$;

--删除插件
DROP EXTENSION pg_cron;

--生成插件
CREATE EXTENSION pg_cron;

--计划 每天创建第二天分区
SELECT cron.schedule('create-partitions-day1','18 * * * *', $$SELECT create_tab_part_day();$$); 
SELECT cron.schedule('create-partitions-day2','50 * * * *', $$SELECT create_tab_part_day();$$); 
--计划 每月创建第二月分区
SELECT cron.schedule('create-partitions-month','0 1 1 * *', $$SELECT create_tab_part_month();$$);
--计划 每年创建第二年分区
SELECT cron.schedule('create-partitions-year','0 1 1 1 *', $$SELECT create_tab_part_year();$$);


--查看定时计划
select jobid, command from cron.job;
select * from cron.job;

--查看cron配置
select name,setting from pg_settings where name like '%cron%';

SELECT * from pg_settings

--删除定时计划
select cron.unschedule('create-partitions-day1' );
select cron.unschedule('create-partitions-day2' );

--表名拼接串 日 月 年
SELECT to_char(current_date+interval'1 day','YYYYMMDD') INTO dateStr;

SELECT to_char(date_trunc('month',current_date)+interval'1 month','YYYYMM') INTO dateStr;

SELECT to_char(date_trunc('year',current_date)+interval'1 year','YYYY') INTO dateStr;

--按天分区起止时间串
to_char(current_date+interval'1 day', 'YYYY-MM-DD')  to_char(current_date+interval'2 day', 'YYYY-MM-DD') 

--按月分区起止时间串
to_char(date_trunc('month',current_date)+interval'1 month', 'YYYY-MM-DD')  to_char(date_trunc('month',current_date)+interval'2 month', 'YYYY-MM-DD')

--按年分区起止时间串
to_char(date_trunc('year',current_date)+interval'1 year', 'YYYY-MM-DD')  to_char(date_trunc('year',current_date)+interval'2 year', 'YYYY-MM-DD')

cron时间表达式以及pg_cron插件安装方法请自行搜索

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值