postgresql 建立删除分区表

常经常添加分区表,和清理分区表,很简单的2个函数
--添加分区表
CREATE OR REPLACE FUNCTION create_table(table_name character varying,table_num integer)
 RETURNS void
 LANGUAGE plpgsql
AS $function$
declare

v_date      char(8);
v_tablename  varchar(64);

begin
 
for i in 0..table_num loop

v_date      :=to_char(current_date + i,'YYYYMMDD');
v_tablename := table_name ||'_'|| v_date;

execute  'create table ' || v_tablename ||'(like '||table_name||' including all) inherits('||table_name||')';
execute 'grant select on ' || v_tablename || ' to dwetl';

end loop;
end
$function$;

--删除分区表
CREATE OR REPLACE FUNCTION drop_table(table_name character varying,table_num integer)
 RETURNS void
 LANGUAGE plpgsql
AS $function$
declare

v_date      char(8);
v_tablename  varchar(64);

begin
 
for i in 0..table_num loop

v_date      :=to_char(current_date + i,'YYYYMMDD');
v_tablename := table_name ||'_'|| v_date;

execute  'drop table ' || v_tablename;


end loop;
end
$function$;


--执行函数
select create_table('table_name',table_num);
select drop_table('table_name',table_num);
--删除函数
drop FUNCTION create_table(table_name character varying,table_num integer); #必须写上输入参数
drop FUNCTION drop_table(table_name character varying,table_num integer);
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值