更新时间:2024-11-11 GMT+08:00

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 ;
    

参数说明

  • 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;
标记外表ft_region的r_name列为not null:
1
ALTER FOREIGN TABLE ft_region ALTER r_name SET NOT NULL;