我有两个 POSTGRES 数据库存储在不同的服务器中。
“Firstdb”是版本 9.2 ,它存储在LAN服务器端口 5432 中。
“Seconddb” 版本 10 ,并将其作为localhost存储到我的电脑,端口 5432
我可以通过 pgAdmin4 版本 2.0 访问这两个版本。
我想在这两个数据库之间运行查询来比较数据。
关于如何做到这一点的任何想法?
谢谢大家的时间。
答案 0 :(得分:1)
对于运行联合查询,我大部分时间都使用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,它不会创建外部表,但可以直接向目标数据库发出查询并检索结果集,就像它是本地的一样。