如何在 pg_dump 中给出 WHERE 条件?

问题描述 投票:0回答:1

如何在 pg_dump 中给出 WHERE 条件以提取以下命令中的特定值,

pg_dump --table=export_table --data-only --column-inserts my_database > data.sql
sql postgresql pgadmin dump
1个回答
0
投票

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
必须有相同的结构

© www.soinside.com 2019 - 2024. All rights reserved.