IMPORT FOREIGN SCHEMA — 从远程服务器导入表定义
IMPORT FOREIGN SCHEMAremote_schema[ { LIMIT TO | EXCEPT } (table_name[, ...] ) ] FROM SERVERserver_nameINTOlocal_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 的扩展。