删除分表

CREATE OR REPLACE FUNCTION func_drop_unuseful_tbl_bak_file_subtables() 
RETURNS INTEGER 
AS
$BODY$
DECLARE
	rec record;
	szTableName varchar;
BEGIN
	for rec in select tablename from pg_tables where (tablename < 'tbl_bak_file_2019_39' or tablename > 'tbl_bak_file_2019_47') and (tablename similar to 'tbl_bak_file_(\d)%')
	loop
		szTableName=rec.tablename;
		execute 'LOCK TABLE '|| szTableName || ' IN ACCESS EXCLUSIVE MODE;';
		execute 'drop table IF EXISTS ' || szTableName ;
	end loop;
	
    RETURN 0;
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;
posted @ 2019-11-19 21:02  岳麓丹枫  阅读(148)  评论(0编辑  收藏  举报