我有两个 postgres 存储在不同服务器中的数据库。
" firstDB" 是版本 9.2 ,它存储在LAN服务器中,端口 5432 。
" seconddb" 是版本 10 ,它被存储为Localhost。
我可以通过 pgadmin4 版本 2.0 。
我想在这两个数据库之间运行查询以比较数据。
关于如何完成的任何想法?
谢谢大家的时间。
对于运行联合查询,我大部分时间都使用 POSTGRES_FDW ,该在源数据库中创建外国表。非常方便,但在与加入打交道时有所注意。
一个例子:
CREATE SERVER my_server FOREIGN DATA WRAPPER postgres_fdw OPTIONS (host 'target.host.com', port '5432', dbname 'targetdb');
CREATE USER MAPPING FOR postgres SERVER my_server OPTIONS (user 'postgres');
CREATE FOREIGN TABLE my_foreign_table (
id INT,
desc TEXT
)
SERVER my_server OPTIONS (schema_name 'public', table_name 'target_table');
编辑基于注释:
请记住,作为任何其他应用程序,源数据库都需要访问目标数据库,并且必须在pg_hba.conf
上进行描述:
host yourdb youruser 0.0.0.0 md5
另一种方法是使用 dblink ,它不会创建外国表,但可以使您可以直接向目标数据库发射查询并检索结果集,就像是本地的一样。
。