PostgreSQL 可以跨服务器查询吗?例如,通过使用 INSERT INTO 查询将表数据从一台服务器的表插入到另一台服务器?如果是这样,查询是否大致如下所示: 插入[目标表] 选择 * FROM [源服务器].[源架构].[源表]
?
我尝试运行此查询,并收到以下错误“跨数据库引用未实现”
postgres_fdw
。文档中的示例:
CREATE EXTENSION postgres_fdw;
CREATE SERVER foreign_server
FOREIGN DATA WRAPPER postgres_fdw
OPTIONS (host '192.83.123.89', port '5432', dbname 'foreign_db');
CREATE USER MAPPING FOR local_user
SERVER foreign_server
OPTIONS (user 'foreign_user', password 'password');
CREATE FOREIGN TABLE foreign_table (
id integer NOT NULL,
data text
)
SERVER foreign_server
OPTIONS (schema_name 'some_schema', table_name 'some_table');
完成后,如果您
insert into foreign_table
,数据将被插入到另一个数据库上的表中,然后在您select
时从中读取。
使用其他外部数据包装器或
dblink
,您还可以对其他数据库甚至文件运行查询。