我有一个Postgres数据库,我想备份一张表:
pg_dump --data-only --table=<table> <db> > dump.sql
几天后,我试图通过以下方式覆盖它(基本上想要擦除所有数据并添加来自我的转储的数据):
psql -d <db> -c --table=<table> < dump.sql
但它不会覆盖已有数据,而是在现有数据的基础上添加。
如果有任何建议,将不胜感激,谢谢!
我有一个Postgres数据库,我想备份一张表:
pg_dump --data-only --table=<table> <db> > dump.sql
几天后,我试图通过以下方式覆盖它(基本上想要擦除所有数据并添加来自我的转储的数据):
psql -d <db> -c --table=<table> < dump.sql
但它不会覆盖已有数据,而是在现有数据的基础上添加。
如果有任何建议,将不胜感激,谢谢!
COPY
语句。您可以在数据加载之前加上TRUNCATE <table>
,或将其添加到您的 dump.sql 文件的顶部。 - jmelesky--clean
运行pg_dump
,以“在输出用于创建它们的命令之前输出清理(删除)数据库对象的命令”。 - Ezequiel Tolnay