pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。
CREATE FOREIGN TABLE — define a new foreign table
CREATE FOREIGN TABLE [ IF NOT EXISTS ]table_name( [ {column_namedata_type[ NULL | NOT NULL ] } [, ... ] ] ) SERVERserver_name[ OPTIONS (option'value' [, ... ] ) ]
CREATE FOREIGN TABLE将在当前数据库中创建一个新的外部表。该表归发出该命令的用户所有。
如果给出了模式名(例如 CREATE FOREIGN TABLE myschema.mytable ...),则表将在指定模式中创建。 否则,它将在当前模式中创建。 外部表名必须与同一模式中任何其他关系(表、序列、索引、视图、物化视图或外部表)的名称不同。
CREATE FOREIGN TABLE还会自动创建一种数据类型,用以表示与该外部表一行对应的复合类型。因此,外部表名不能与同一模式中任何已有数据类型同名。
IF NOT EXISTS已经存在同名关系时不要抛出错误。这种情况下会发出一个提示。注意, 已存在的关系不保证与原本将要创建的关系有任何相似之处。
table_name要创建的表名(可选地带有模式限定)。
column_name要在新表中创建的列名。
data_type该列的数据类型,可以包含数组说明符。有关PostgreSQL支持的数据类型的更多信息,参见第 8 章。
NOT NULL该列不允许包含空值。
NULL该列允许包含空值。这是默认行为。
此子句仅用于与非标准 SQL 数据库兼容。在新应用程序中不建议使用。
server_name用于该外部表的现有服务器的名称。
OPTIONS ( option 'value' [, ...] )与新外部表关联的选项。允许的选项名称和值取决于每个外部数据包装器,并通过外部数据包装器的验证函数进行验证。选项名必须唯一。
创建带有服务器 film_server 的外部表 films:
CREATE FOREIGN TABLE films (
code char(5) NOT NULL,
title varchar(40) NOT NULL,
did integer NOT NULL,
date_prod date,
kind varchar(10),
len interval hour to minute
)
SERVER film_server;
CREATE FOREIGN TABLE 命令在很大程度上符合 SQL 标准;不过,与 CREATE TABLE 类似,允许使用 NULL 约束和零列外部表。
译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。