使用Postgres Foreign Data Wrapper,是否可能创建一个指向视图而不是表的外部表?
使用Postgres Foreign Data Wrapper,是否可能创建一个指向视图而不是表的外部表?
是的,这是可能的!
以下查询非常完美地运行:
CREATE FOREIGN TABLE facts(name character varying(255))
SERVER my_server
OPTIONS (table_name 'facts');
若 facts
是在 my_server
中的视图而不是表格。
最近我也需要做同样的事情,以下是对我有效的步骤。所有这些命令都在本地 postgreSQL 数据库上运行。
CREATE EXTENSION postgres_fdw;
CREATE SERVER remote_server_name
FOREIGN DATA WRAPPER postgres_fdw
OPTIONS (host '10.10.10.10', port '5432', dbname 'remote_db_name');
CREATE USER MAPPING FOR local_user_name
SERVER remote_server_name
OPTIONS (user 'remote_user', password 'remote_password');
CREATE FOREIGN TABLE local_table_name (
id NUMERIC NOT NULL,
row TEXT,
another_row INTEGER,
whatever_row TEXT
)
SERVER remote_server_name
OPTIONS (schema_name 'public', table_name 'remote_table_name');
IMPORT FOREIGN SCHEMA remote_schema_name
LIMIT TO (remote_view_name)
FROM SERVER remote_host_map_name INTO local_shema_name;
table_name
选项。 - fphilipeIMPORT FOREIGN SCHEMA
,则无需指定表定义,但必须在LIMIT TO
子句中明确包含视图。 - OrangeDog