什么是删除从数据库中的所有表中的所有记录,假如他们没有太多数据的最快方法(可能是在一些表中有几条记录,但没有更多)?
我相信从结构转储重建数据库是更长的变体。
什么是删除从数据库中的所有表中的所有记录,假如他们没有太多数据的最快方法(可能是在一些表中有几条记录,但没有更多)?
我相信从结构转储重建数据库是更长的变体。
TRUNCATE表1,名称2,... CASCADE
TRUNCATE快速地从一组表中删除所有行。它与每个表上的非限定DELETE具有相同的效果,但由于它实际上并不扫描表,所以速度更快。这在大型表格上最有用。
如果您有很多表可能需要查询表的列表并动态构造截断查询,但对于少数表可以只需手动输入名称。
有关选择所有表并动态运行查询的信息,请参见this post。给出的例子是grantall
,但这个想法是相同的。
当心DELETE可能比TRUNCATE更快。请参阅http://stackoverflow.com/questions/11419536/postgresql-truncation-speed – 2013-11-15 14:16:43
为什么要从结构转储中恢复“更长的变体”?什么意思? – 2010-01-24 12:38:36