PG批量删除表

通过使用存储过程的方式批量删除表
Create or replace function 过程名(参数名 参数类型,……) returns 返回值类型 as b o d y body

具体应用:删除public用户下的所有表
CREATE FUNCTION del_ora_table() RETURNS void AS $$
DECLARE
tmp VARCHAR(512);
DECLARE names CURSOR FOR
select tablename from pg_tables where schemaname=‘public’;
BEGIN
FOR stmt IN names LOOP
tmp := 'DROP TABLE ‘|| quote_ident(stmt.tablename) || ’ CASCADE;’;
RAISE NOTICE ‘notice: %’, tmp;
EXECUTE 'DROP TABLE ‘|| quote_ident(stmt.tablename) || ’ CASCADE;’;
END LOOP;
RAISE NOTICE ‘finished …’;
END;

$$ LANGUAGE plpgsql;

–执行函数批量删除表
select del_ora_table();

发布了75 篇原创文章 · 获赞 7 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/zhengdong12345/article/details/102918978