一尘不染

如何清空SQL数据库?

sql

我正在寻找一种简单的方法来删除数据库中的所有数据并保留结构(表,关系等)。我使用的是postgreSQL,但我认为,如果有执行此操作的命令,则它并不特定于postgres。

谢谢,

达米安


阅读 158

收藏
2021-03-17

共1个答案

一尘不染

使用来转储架构pg_dump。删除数据库,重新创建它并加载架构。

将数据库模式(-s标记)转储到文件中:

pg_dump -s -f db.dump DB-NAME

删除数据库:

dropdb DB-NAME

重新创建它:

createdb DB-NAME

仅还原架构:

pg_restore db.dump > psql DB-NAME

这应该可以在PostgreSQL上运行;其他DBMS可能为此拥有自己的工具。我不知道有任何通用工具可以做到这一点。

编辑:

在注释之后,您可能要跳过该dropdb命令,而仅使用转储的架构创建另一个数据库。如果一切顺利,则可以删除旧数据库:

pg_dump -s -f db.dump DB-NAME
createdb DB-NEW-NAME
pg_restore db.dump > psql DB-NEW-NAME

此时,您在DB-NAME拥有完整的数据库,在DB-NEW-NAME拥有一个空的架构。确定一切正常后,请使用dropdb DB-NAME

2021-03-17