gpt4 book ai didi

postgresql - 使用 postgreSQL 从多个服务器查询表

转载 作者:行者123 更新时间:2023-12-04 10:37:57 24 4
gpt4 key购买 nike

我在不同的 PostgreSQL 服务器上有几个数据库,其中的表具有相同的列(安装 1、安装 2 和安装 3)安装(国家 varchar,日期日期时间,付费 bool 值,安装 int)
我想编写一个用户可以用来同时查询所有这些数据库的函数,我该怎么做?我的查询是:select country,count(*) from t1,t2

最佳答案

提供此功能的 PostgreSQL 扩展是 postgres_fdw .以下是如何设置它的示例:

首先创建扩展:

CREATE EXTENSION postgres_fdw

之后你创建一个指向外部 postgres 服务器的服务器

CREATE SERVER remote_postgres 
FOREIGN DATA WRAPPER postgres_fdw
OPTIONS (dbname 'mydb', host 'remoteserver', port '5432');

然后是一个用户映射,这样你当前数据库中的用户就可以访问外部数据库了:

CREATE USER MAPPING FOR local_user
SERVER remote_postgres
OPTIONS (user 'foreign_user', password 'secret');

最后你创建一个外部表来链接两个表

CREATE FOREIGN TABLE foreign_table_test
(id INT, description TEXT)
SERVER remote_postgres
OPTIONS (schema_name 'public', table_name 'table_test');

创建表后,您可以像查询普通/本地表一样查询它:

SELECT * FROM foreign_table_test

进一步阅读:

关于postgresql - 使用 postgreSQL 从多个服务器查询表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60072658/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com