ALTER FOREIGN TABLE (For HDFS or OBS)
功能描述
对HDFS外表和OBS外表进行修改。
注意事项
无。
语法格式
- 设置外表属性:
1 2
ALTER FOREIGN TABLE [ IF EXISTS ] table_name OPTIONS ( {[ ADD | SET | DROP ] option ['value']} [, ... ]);
- 设置外表的所有者:
1 2
ALTER FOREIGN TABLE [ IF EXISTS ] tablename OWNER TO new_owner;
- 更新外表列:
1 2
ALTER FOREIGN TABLE [ IF EXISTS ] table_name MODIFY ( { column_name data_type | column_name [ CONSTRAINT constraint_name ] NOT NULL [ ENABLE ] | column_name [ CONSTRAINT constraint_name ] NULL } [, ...] );
- 修改外表的列:
1 2
ALTER FOREIGN TABLE [ IF EXISTS ] tablename action [, ... ];
其中action语法为:1 2 3 4 5 6 7
ALTER [ COLUMN ] column_name [ SET DATA ] TYPE data_type | ALTER [ COLUMN ] column_name { SET | DROP } NOT NULL | ALTER [ COLUMN ] column_name SET STATISTICS [PERCENT] integer | ALTER [ COLUMN ] column_name OPTIONS ( {[ ADD | SET | DROP ] option ['value'] } [, ... ]) | MODIFY column_name data_type | MODIFY column_name [ CONSTRAINT constraint_name ] NOT NULL [ ENABLE ] | MODIFY column_name [ CONSTRAINT constraint_name ] NULL
参考ALTER TABLE。
- 增加外表信息约束(Informational Constraint)的语法为:
1 2 3 4
ALTER FOREIGN TABLE [ IF EXISTS ] tablename ADD [ CONSTRAINT constraint_name ] { PRIMARY KEY | UNIQUE } ( column_name ) [ NOT ENFORCED [ ENABLE QUERY OPTIMIZATION | DISABLE QUERY OPTIMIZATION ] | ENFORCED ];
对于增加外表信息约束(Informational Constraint)相关参数请参考参数说明。
- 删除外表的信息约束(Informational Constraint)语法为:
1 2
ALTER FOREIGN TABLE [ IF EXISTS ] tablename DROP CONSTRAINT constraint_name ;
- 设置行级访问控制开关(9.1.0及以上集群版本支持)
ALTER FOREIGN TABLE [ IF EXISTS ] tablename ENABLE | DISABLE | FORCE | NO FORCE ROW LEVEL SECURITY
参数说明
- IF EXISTS
如果不存在相同名称的表,不会抛出错误,而会返回一个通知,告知表不存在。
- tablename
需要修改的外表名称。
取值范围:已存在的外表名。
- new_owner
外表的新所有者。
取值范围:字符串,有效的用户名。
- data_type
现存字段的新类型。
取值范围:字符串,需符合标识符的命名规范
- constraint_name
要添加/删除的约束的名称。
- column_name
现存字段的名称。
取值范围:字符串,需符合标识符的命名规范。
修改外表语法中其他参数如IF EXISTS,请参见ALTER TABLE的参数说明。
示例
修改外表ft_region的r_name字段类型为text:
1
|
ALTER FOREIGN TABLE ft_region ALTER r_name TYPE TEXT; |
1
|
ALTER FOREIGN TABLE ft_region ALTER r_name SET NOT NULL; |