Blog / 阅读

postgresql 建立删除分区表

by admin on 2014-04-02 12:19:56 in ,



常经常添加分区表,和清理分区表,很简单的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);


写评论

相关文章

上一篇:saiku中文查询(鉴于有人提问:saiku执行mdx,有中文报错)

下一篇:oracle常用命令大全

评论

写评论

* 必填.

分享

栏目

赞助商


热门文章

Tag 云