PostgreSQL 中文参考文档
🌐 英文原版 官方 ↗

IMPORT FOREIGN SCHEMA

IMPORT FOREIGN SCHEMA — 从外部服务器导入表定义

Synopsis

IMPORT FOREIGN SCHEMA remote_schema
    [ { LIMIT TO | EXCEPT } ( table_name [, ...] ) ]
    FROM SERVER server_name
    INTO local_schema
    [ OPTIONS ( option 'value' [, ... ] ) ]

描述

IMPORT FOREIGN SCHEMA 创建一些外部表,用来表示存在于一个外部服务器上的表。新的外部表将由发出该命令的用户拥有,并且会以正确的列定义和选项创建,以匹配远程表。

默认情况下,外部服务器上某个特定模式中存在的所有表和视图都会被导入。也可以选择把表列表限制为指定的一个子集,或者排除某些特定的表。新的外部表全部创建在目标模式中,该模式必须已经存在。

要使用 IMPORT FOREIGN SCHEMA,用户必须对该外部服务器拥有 USAGE 特权,并且对目标模式拥有 CREATE 特权。

参数

remote_schema

要从中导入的远程模式。远程模式的具体含义取决于所使用的外部数据封装器。

LIMIT TO ( table_name [, ...] )

只导入与给定表名之一相匹配的外部表。外部模式中存在的其他表将被忽略。

EXCEPT ( table_name [, ...] )

把指定的外部表排除在导入之外。外部模式中存在的所有表都将被导入,这里列出的表除外。

server_name

要从中导入的外部服务器。

local_schema

导入的外部表将在其中创建的模式。

OPTIONS ( option 'value' [, ...] )

导入期间要使用的选项。允许的选项名称和值是每种外部数据封装器特有的。

示例

从服务器 film_server 上的远程模式 foreign_films 导入表定义,并在本地模式 films 中创建外部表:

IMPORT FOREIGN SCHEMA foreign_films
    FROM SERVER film_server INTO films;

与上面相同,但只导入 actors 和 directors 这两张表(如果它们存在):

IMPORT FOREIGN SCHEMA foreign_films LIMIT TO (actors, directors)
    FROM SERVER film_server INTO films;

兼容性

IMPORT FOREIGN SCHEMA 命令符合 SQL 标准,但 OPTIONS 子句是 PostgreSQL 的一个扩展。

另请参阅

CREATE FOREIGN TABLE, CREATE SERVER