要删除 PostgreSQL
中指定数据库(例如 person
)中的所有表,可以使用以下方法。
慎重操作,删除数据库是“高危险”行为,请再三思索!!!以下方式推荐个人开发环境尝试。
方法一:使用 SQL 语句逐个删除所有表
你可以先查询出该数据库中所有的表名,然后生成对应的 DROP TABLE
语句并执行:
-- 进入 <your_database_instance> 数据库后执行
DO $$
DECLARE
r RECORD;
BEGIN
FOR r IN (SELECT tablename FROM pg_tables WHERE schemaname = 'public') LOOP
EXECUTE 'DROP TABLE IF EXISTS ' || quote_ident(r.tablename) || ' CASCADE;';
END LOOP;
END $$;
方法二:清空整个模式(推荐)
如果你只想快速清空 public
模式下的所有表:
DROP SCHEMA public CASCADE;
CREATE SCHEMA public;
✅ 前提:你需要先连接到
person
数据库才能执行上述操作。
如何连接到指定数据库执行
你也可以通过命令行或客户端工具连接到 person
数据库后再执行上面的 SQL
:
psql -d person -U your_username
然后在 psql
命令行中输入上述 SQL
。
⚠️ 警告:这些操作会永久删除数据,请务必提前备份重要数据。