【发布时间】:2016-05-05 22:43:17
【问题描述】:
我有一个 postgres 数据库,我正在尝试使用以下方式备份一个表:
pg_dump --data-only --table=<table> <db> > dump.sql
然后几天后我试图通过以下方式覆盖它(基本上是想擦除所有数据并从我的转储中添加数据):
psql -d <db> -c --table=<table> < dump.sql
但它不会覆盖,它会在不删除现有数据的情况下添加它。
任何建议都会很棒,谢谢!
【问题讨论】:
-
这是意料之中的——转储只是 sql
COPY语句。您可以在数据加载之前使用TRUNCATE <table>,或者将其添加到 dump.sql 文件的顶部。 -
或者,运行
pg_dump和--clean以“在输出创建数据库对象的命令之前输出命令以清理(删除)数据库对象。”
标签: postgresql postgresql-9.1 psql pg-dump