CREATE FOREIGN TABLE (SQL on other GaussDB 200)
功能描述
在当前数据库创建一个协同分析的外表,用来访问存储在协同分析其他集群数据库中的表。
该外表是只读的,只能用于查询操作,可直接使用SELECT语句查询其数据。
语法格式
1 2 3 4 5 6 7 | CREATE FOREIGN TABLE [ IF NOT EXISTS ] table_name ( [ { column_name type_name | LIKE source_table } [, ...] ] ) SERVER server_name OPTIONS ( { option_name ' value ' } [, ...] ) [ READ ONLY ] [ DISTRIBUTE BY {ROUNDROBIN} ] [ TO { GROUP groupname | NODE ( nodename [, ... ] ) } ]; |
参数说明
- IF NOT EXISTS
如果已经存在相同名称的表,不会抛出一个错误,而会发出一个通知,告知表关系已存在。
- table_name
外表的表名。
取值范围:字符串,要符合标识符的命名规范。
- column_name
外表中的字段名。可以选择多个字段名,中间用“,”隔开。
取值范围:字符串,要符合标识符的命名规范。
说明:
不允许在列上创建约束,也不允许创建索引。
- type_name
字段的数据类型。
说明:
不允许使用序列当作类型和使用自定义类型。
- SERVER hdfs_server
外表的server名字。允许用户自定义名字。
取值范围:字符串,要符合标识符的命名规范,并且这个server必须存在。
- OPTIONS ( { option_name ' value ' } [, ...] )
用于指定外表数据的各类参数,参数类型如下所示。
- table_name:对应关联集群的表名,如果省略此option则认为该值和外表名字一样。
- schema_name:对应关联集群的schema,如果省略此option则认为该值和外表所在的schema一样。
- encoding:对应关联集群的编码,如果省略此option则使用关联集群的数据库编码。
- READ ONLY
显示表是外表为只读。
- DISTRIBUTE BY ROUNDROBIN
显示指定外表为ROUNDROBIN分布方式。
- TO { GROUP groupname | NODE ( nodename [, ... ] ) }
TO GROUP目前不支持使用。TO NODE主要供内部扩容工具使用,一般用户不应使用。
示例
- 建立remote_server,对应的foreign data wrapper为GC_FDW。
1 2
--创建Server。 CREATE SERVER server_remote FOREIGN DATA WRAPPER GC_FDW OPTIONS (address '10.146.187.231:8000,10.180.157.130:8000' ,dbname 'test', username 'test', password 'Xx123456@');
说明:
在可选项options里面写入了关联集群CN对应的IP地址及端口号。这里推荐使用填写一个LVS的地址或者多个CN的地址。
- 创建外表
1 2 3 4 5 6 7 8 9 10 11 12 13 14
CREATE FOREIGN TABLE region ( R_REGIONKEY INT4, R_NAME TEXT, R_COMMENT TEXT ) SERVER server_remote OPTIONS ( schema_name 'test', table_name 'region', encoding 'gbk' );
- 查看建立的外表。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
--查看外表。 \d+ region Foreign table "public.region" Column | Type | Modifiers | FDW Options | Storage | Stats target | Description -------------+---------+-----------+-------------+----------+--------------+------------- r_regionkey | integer | | | plain | | r_name | text | | | extended | | r_comment | text | | | extended | | Server: server_remote FDW Options: (schema_name 'test', table_name 'region', encoding 'gbk') FDW permition: read only Has OIDs: no Distribute By: ROUND ROBIN Location Nodes: ALL DATANODES
- 修改、删除外表。
1 2 3 4 5 6 7 8
--修改外表。 ALTER FOREIGN TABLE region ALTER r_name TYPE TEXT; ALTER FOREIGN TABLE ALTER FOREIGN TABLE region OPTIONS (SET schema_name 'test'); ALTER FOREIGN TABLE --删除外表。 DROP FOREIGN TABLE region; DROP FOREIGN TABLE
相关链接
DROP FOREIGN TABLE,ALTER FOREIGN TABLE (SQL on other GaussDB 200)
查看更多:华为GaussDB 200 SQL语法
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。