IMPORT FOREIGN SCHEMA

从外部服务器导入表定义。

概要

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;

同上,但仅导入两个表:演员表和导演表(如果存在):

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

兼容性

IMPORT FOREIGN SCHEMA 命令符合 SQL 标准,但 OPTIONS 子句属于数据库扩展功能。

另见

CREATE FOREIGN TABLE, CREATE SERVER