PostgreSQL:清除所有表

Bog*_*iev 4 sql postgresql

可能重复:
如何清空SQL数据库?

删除数据库中所有表中所有记录的最快方法是什么,假设它们没有太多数据(可能是某些表中的一些记录但不多)?

我相信从结构转储中重新创建数据库的时间要长得多.

Mar*_*ers 6

TRUNCATE TABLE name1,name2,... CASCADE

TRUNCATE快速删除一组表中的所有行.它与每个表上的非限定DELETE具有相同的效果,但由于它实际上不扫描表,因此速度更快.这对大型表最有用.

如果你有很多表,你可能想要查询表列表并动态构造截断查询,但是对于少量表,你可以手动输入名称.

有关选择所有表并动态运行查询的信息,请参阅此文章.给出的例子是,grantall但想法是一样的.