it编程 > 数据库 > MsSqlserver

PostgreSQL清空数据库的常用方法

9人参与 2026-03-18 MsSqlserver

postgresql 中“清空一个数据库”通常有几种理解和对应方法,具体取决于你的需求:

注意事项(非常重要)

1. 最推荐:只清空数据(保留表结构)—— 使用 truncate

truncatedelete 快得多,且立即释放空间。

方法 a:手动清空单个或多个表

truncate table table1, table2, table3 restart identity cascade;

方法 b:自动清空当前 schema(通常是 public)中的所有表

在 psql 中执行以下脚本:

do $$
declare
    r record;
begin
    for r in (select tablename from pg_tables where schemaname = current_schema()) loop
        execute 'truncate table ' || quote_ident(r.tablename) || ' restart identity cascade;';
    end loop;
end $$;

或者生成 sql 后执行(更灵活):

select 'truncate table ' || tablename || ' restart identity cascade;'
from pg_tables 
where schemaname = 'public';

复制输出结果并执行即可。

2. 彻底清空数据库(删除所有对象,保留空库)

最简单高效的方式是删除并重建默认 schema(public):

drop schema public cascade;
create schema public;

-- 恢复默认权限(推荐加上)
grant all on schema public to postgres;
grant all on schema public to public;

这会删除所有表、视图、函数、序列等,数据库本身还在,但已经是空的。

3. 完全删除并重建整个数据库

使用 sql(需要在 postgres 或其他数据库中执行,不能在目标数据库里删自己)

drop database if exists your_database_name;
create database your_database_name;

使用命令行工具(推荐)

# 删除数据库
dropdb -u postgres your_database_name
# 创建新数据库
createdb -u postgres your_database_name

或者用 pgadmin 图形界面操作更直观。

4. 其他常见场景

vacuum full;

(会锁表,生产环境慎用;平时用 vacuum 即可)。

建议

到此这篇关于postgresql清空数据库的常用方法的文章就介绍到这了,更多相关postgresql清空数据库内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

您想发表意见!!点此发布评论

推荐阅读

PostgreSQL数据库升级的完整流程与注意事项

03-18

查看PostgreSQL进程父子关系的两种方法

03-18

sql server导入、导出数据表信息实现方式

03-19

SQL server如何将两张表合并成一张表

03-19

把SQL Server数据库导为sql文件的实现方式

03-19

SQL Server 字符集验证的实现

03-19

猜你喜欢

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论