PostgreSQL:清空所有表

4

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

假设所有表中的数据不多(某些表中可能只有几条记录),删除所有表中的所有记录的最快方法是什么?

我认为从结构转储重新创建数据库是更长的变体。


1
为什么从结构转储中恢复需要“更长的变体”?在什么意义上更长? - Mark Byers
1个回答

6

TRUNCATE TABLE name1, name2, ... CASCADE

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

如果您有很多表格,您可能想要查询表格列表并动态构建截断查询,但对于少量表格,您可以手动输入名称。

有关选择所有表并动态运行查询的信息,请参见此帖子。给出的示例是针对grantall的,但思路是相同的。


注意,DELETE命令可能比TRUNCATE命令更快。请参见https://dev59.com/G2gu5IYBdhLWcg3wTVc6 - Timothy Corbett-Clark

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接