如何在 pg_dump 中给出 WHERE 条件以提取以下命令中的特定值,
pg_dump --table=export_table --data-only --column-inserts my_database > data.sql
Postgres 没有任何
--
标志来过滤您想要从 --table
. 中提取的数据
执行此操作的最佳方法可能是选择要使用查询提取的数据,然后将其保存到 csv 中。
然后您可以将该 csv 导出到任何您想要的位置,并将数据导入回具有与源表相同结构的表中。
例如
假设您要转储的数据是通过以下查询选择的:
select * from my_table where date>=current_date-1;
访问源数据库并将所需数据保存到 csv 中
\COPY (select * from my_table where date>=current_date-1) TO '~/my_local_path/dump_mydb_7daysdata.csv';
传输 csv 文件(如果您愿意)
scp ~/my_local_path/dump_mydb_7daysdata.csv <user>@<ip>:~/my_path_2/
访问另一个数据库并从 csv 文件导入数据
\COPY my_table_2 FROM '~/my_path_2/dump_mydb_7daysdata.csv';
再次注意
my_table
和my_table_2
必须有相同的结构