PostgreSQL:清除所有表

时间:2010-01-24 12:26:16

标签: sql postgresql

  

可能重复:
  How to empty a SQL database?

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

我认为从结构转储中重新创建数据库的时间要长得多。

1 个答案:

答案 0 :(得分:6)

TRUNCATE TABLE name1,name2,... CASCADE

  

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

如果您有很多表,可能需要查询表列表并动态构造截断查询,但对于少量表,您只需手动输入名称即可。

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