导入外部架构 — 从外部服务器导入表定义
IMPORT FOREIGN SCHEMAremote_schema
[ { LIMIT TO | EXCEPT } (table_name
[, ...] ) ] FROM SERVERserver_name
INTOlocal_schema
[ OPTIONS (option
'value
' [, ... ] ) ]
IMPORT FOREIGN SCHEMA
创建外部表,表示外部服务器上存在的表。新外部表将归命令发出者所有,且创建时具有正确的列定义和选项以匹配远程表。
默认情况下,将导入外部服务器上特定架构中存在的所有表和视图。还可以选择性地将表列表限制为指定的子集,或排除特定表。新外部表全部创建于目标架构中,该架构必须已存在。
要使用 IMPORT FOREIGN SCHEMA
,用户必须对外部服务器具有 USAGE
权限,以及对目标架构具有 CREATE
权限。
remote_schema
要从中导入的远程架构。远程架构的具体含义取决于所使用的外部数据封装器。
LIMIT TO ( table_name
[, ...] )
仅导入与给定表名之一匹配的外键表。外键架构中存在的其他表将被忽略。
EXCEPT ( 表名
[, ...] )
从导入中排除指定的外键表。外键架构中存在的所有表都将被导入,但此处列出的表除外。
服务器名称
要从中导入的外键服务器。
本地架构
将在其中创建导入的外键表的架构。
OPTIONS ( 选项
'值
' [, ...] )
导入期间要使用的选项。允许的选项名称和值特定于每个外键数据包装器。
从服务器 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 扩展。