9.3 9.4 9.5 9.6 10 11 12 13 14 Current(15)
阿里云PostgreSQL 问题报告 纠错本页面
PostgreSQL 9.3.1 中文手册
上一页上一级下一页

CREATE FOREIGN TABLE

名称

CREATE FOREIGN TABLE -- 定义一个新外部表

大纲

CREATE FOREIGN TABLE [ IF NOT EXISTS ] table_name ( [
 column_name data_type [ OPTIONS ( option 'value' [, ... ] ) ] [ COLLATE collation ] [ column_constraint [ ... ] ]
 [, ... ]
] )
 SERVER server_name
[ OPTIONS ( option 'value' [, ... ] ) ]
这里column_constraint 可以是:
[ CONSTRAINT constraint_name ]
{ NOT NULL |
 NULL |
 DEFAULT default_expr }

描述

CREATE FOREIGN TABLE在当前数据库中创建一个外部表,该表将由发出此命令的用户所有。

如果给出了模式名 (for example, CREATE FOREIGN TABLE myschema.mytable ...) ,那么表是在指定模式中创建的。否则在当前模式中创建外部表。 外部表的名字必须与同一个模式中的其它外部表,表,序列,索引或试图的名字不同

CREATE FOREIGN TABLE还自动创建一个数据类型,该数据类型代表对应该外部表一行的复合类型。 因此,外部表不能和同模式中的现有数据类型同名。

为了创建一个外部表,除了对外部表所有字段类型有 USAGE权限外, 还必须有外部表服务器的USAGE权限。

参数

IF NOT EXISTS

如果已经存在相同名称的对象,在这种情况下,不会抛出错误,只会产生一个通知。 请注意这并不保证将要创建的对象与现有对象是否一致。

table_name

要创建的表的名字(可以用模式修饰)。

column_name

新表中要创建的字段名。

data_type

该字段的数据类型. 它可以包含数组说明符。有关 PostgreSQL 支持的数据类型的更多信息, 请参考第 8 章

NOT NULL

该字段不允许包含null值。

NULL

该字段允许包含null值。 这是缺省。

这个子句的存在只是为和那些非标准 SQL 数据库兼容。 我们不建议在新应用中使用它。

DEFAULT default_expr

DEFAULT 子句给它所出现的字段设定一个缺省数值。该数值可以是任何不含变量的表达式(不允许使用子查询和对本表中的其它字段的交叉引用)。缺省表达式的数据类型必须和字段类型匹配。

缺省表达式将被用于任何未指定该字段数值的插入操作。 如果字段上没有缺省值,那么缺省是 NULL。

server_name

外部表使用的已存在的外部服务器名称。更多细节,参考CREATE SERVER

OPTIONS ( option 'value' [, ...] )

选项与新外部表或外部表中的字段有关。允许的选项名称和值,是由每一个外部数据封装器中来说是特别指定的。 也是通过外部数据封装器的验证函数来验证。重复的选项名称是不被允许的(尽管表选项和表字段选项可以有相同的名字)。

例子

创建外部表 films, 该表通过服务器 film_server访问:

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约束和 零字段外部表以及设定默认值的功能是PostgreSQL对SQL标准的扩展。

See Also

ALTER FOREIGN TABLE, DROP FOREIGN TABLE, CREATE TABLE, CREATE SERVER

上一页起始页下一页
CREATE FOREIGN DATA WRAPPER上一级CREATE FUNCTION
<
/BODY>

AltStyle によって変換されたページ (->オリジナル) /