↑↓ 选择 ↵ 打开 ⌫ 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

百科 / SQL 命令 / 外部数据

SQL COMMAND · 外部数据

IMPORT FOREIGN SCHEMA

从一个外部服务器导入表定义

import table definitions from a foreign server

IMPORT外部数据引入 9.5现存至 20 devel0 次语法变更

动词
IMPORT
对象
FOREIGN SCHEMA
引入版本
9.5
状态
现存
语法变更次数
0
手册小节数
5

本站手册 · 18官方文档 ↗

版本轨迹

相对 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 remote_schema
[ { LIMIT TO | EXCEPT } ( table_name [, ...] ) ]
FROM SERVER server_name
INTO local_schema
[ OPTIONS ( option 'value' [, ... ] ) ]

PostgreSQL 18 手册 · 查看完整参考页

描述

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 扩展。

另见

语法演化

相邻大版本之间的差异,新的在前。版本号链接到对应快照。

  1. PostgreSQL 9.5← 9.4新增此命令

同组命令

命令动词对象版本变动最近变更
FOREIGN DATA外部数据13 条↑
CREATE FOREIGN DATA WRAPPERCREATEFOREIGN DATA WRAPPER 192 次
定义一个新的外部数据包装器现存
ALTER FOREIGN DATA WRAPPERALTERFOREIGN DATA WRAPPER 195 次
更改外部数据包装器的定义现存
DROP FOREIGN DATA WRAPPERDROPFOREIGN DATA WRAPPER 101 次
移除一个外部数据包装器现存
IMPORT FOREIGN SCHEMAIMPORTFOREIGN SCHEMA —
从一个外部服务器导入表定义现存
CREATE FOREIGN TABLECREATEFOREIGN TABLE 187 次
定义一个新外部表现存
ALTER FOREIGN TABLEALTERFOREIGN TABLE 167 次
更改外部表的定义现存
DROP FOREIGN TABLEDROPFOREIGN TABLE —
移除一个外部表现存
CREATE SERVERCREATESERVER 102 次
定义一个新的外部服务器现存
ALTER SERVERALTERSERVER 144 次
更改外部服务器的定义现存
DROP SERVERDROPSERVER 103 次
移除一个外部服务器描述符现存
CREATE USER MAPPINGCREATEUSER MAPPING 143 次
定义用户到外部服务器的新映射现存
ALTER USER MAPPINGALTERUSER MAPPING 143 次
更改用户映射的定义现存
DROP USER MAPPINGDROPUSER MAPPING 142 次
删除外部服务器的用户映射现存