SQL COMMAND · 外部数据
IMPORT FOREIGN SCHEMA
从一个外部服务器导入表定义
import table definitions from a foreign server
IMPORT外部数据引入 9.5现存至 20 devel0 次语法变更
- 动词
IMPORT- 对象
FOREIGN SCHEMA- 分组
- 外部数据
- 引入版本
- 9.5
- 状态
- 现存
- 语法变更次数
- 0
- 手册小节数
- 5
版本轨迹
相对 PostgreSQL 17 无变化。
语法铁道图 PostgreSQL 18
沿轨道从左向右阅读,分岔表示选择,绕行表示可选,回环表示重复。方框为参数,点击带下划线的参数可展开子规则。
语法概要
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 扩展。
另见
语法演化
相邻大版本之间的差异,新的在前。版本号链接到对应快照。
PostgreSQL 9.5← 9.4新增此命令
同组命令
| 命令 | 动词 | 对象 | 版本变动 | 最近变更 |
|---|---|---|---|---|
CREATE FOREIGN DATA WRAPPER | CREATE | FOREIGN DATA WRAPPER | 192 次 | |
| 定义一个新的外部数据包装器 | 现存 | |||
ALTER FOREIGN DATA WRAPPER | ALTER | FOREIGN DATA WRAPPER | 195 次 | |
| 更改外部数据包装器的定义 | 现存 | |||
DROP FOREIGN DATA WRAPPER | DROP | FOREIGN DATA WRAPPER | 101 次 | |
| 移除一个外部数据包装器 | 现存 | |||
IMPORT FOREIGN SCHEMA | IMPORT | FOREIGN SCHEMA | — | |
| 从一个外部服务器导入表定义 | 现存 | |||
CREATE FOREIGN TABLE | CREATE | FOREIGN TABLE | 187 次 | |
| 定义一个新外部表 | 现存 | |||
ALTER FOREIGN TABLE | ALTER | FOREIGN TABLE | 167 次 | |
| 更改外部表的定义 | 现存 | |||
DROP FOREIGN TABLE | DROP | FOREIGN TABLE | — | |
| 移除一个外部表 | 现存 | |||
CREATE SERVER | CREATE | SERVER | 102 次 | |
| 定义一个新的外部服务器 | 现存 | |||
ALTER SERVER | ALTER | SERVER | 144 次 | |
| 更改外部服务器的定义 | 现存 | |||
DROP SERVER | DROP | SERVER | 103 次 | |
| 移除一个外部服务器描述符 | 现存 | |||
CREATE USER MAPPING | CREATE | USER MAPPING | 143 次 | |
| 定义用户到外部服务器的新映射 | 现存 | |||
ALTER USER MAPPING | ALTER | USER MAPPING | 143 次 | |
| 更改用户映射的定义 | 现存 | |||
DROP USER MAPPING | DROP | USER MAPPING | 142 次 | |
| 删除外部服务器的用户映射 | 现存 | |||