DO
$$
DECLARE
r RECORD;
BEGIN
-- 只删除表,不删除其他views、sequences
-- 放在要删除的表的库的shcema下
-- 如果是用单行执行的客户端工具,记得全选整个语句才能执行,单行执行会报语法错误。
FOR r IN (SELECT tablename FROM pg_tables WHERE schemaname = current_schema())
LOOP
EXECUTE 'DROP TABLE IF EXISTS ' || quote_ident(r.tablename) || ' CASCADE';
END LOOP;
END
$$;
pg删除所有表
该文章描述了一个在PostgreSQL中执行的SQL存储过程,它遍历当前schema下的表并使用`DROPTABLEIFEXISTS`语句递归删除它们,确保不会误删其他视图和序列。

被折叠的 条评论
为什么被折叠?



