欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Greenplum (PostgreSql) 批量删除某些指定表

程序员文章站 2022-03-06 12:12:38
...
近日,写多线程程序操作gp的外部表和内部表,由于开发阶段产生了很多表未被删除,写了此脚本清理这些表。

create or replace function public.func_drop_tables() returns void as $body$ -- 注意schema名称
declare
    tmp varchar(512); -- 存放拼接文本
    stmt record; -- 记录类型可用于保存查询结果
    i int; -- 计数
begin
    i := 1;
    for stmt in (select tablename from pg_tables where schemaname='public' and tablename like 'tmp_t%') loop -- 这里public是schema,限定某些特定表
    
    tmp := 'drop table public.' || stmt.tablename || ' cascade;'; --cascade表示级联删除
    raise notice 'currentTable is : % ------%', stmt.tablename, i; -- 打印一下信息,当前表名称和序号。
	execute tmp; -- 执行删除动作。
    i := i+1;
	end loop;
end;
$body$ language plpgsql volatile



脚本已在使用,执行时要小心表会被删除。
执行脚本方法:SELECT public.func_drop_tables()
相关标签: 脚本 PostgreSQL