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

ALTER FOREIGN TABLE (SQL on other GaussDB(DWS))

功能描述

对协同分析的外表进行修改。

注意事项

无。

语法格式

  • 设置外表属性:
    1
    2
    ALTER FOREIGN TABLE [ IF EXISTS ] tablename
        OPTIONS ( {[ SET ] 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 [, ...] } );
    
  • 修改外表的列:
    1
    2
    ALTER FOREIGN TABLE [ IF EXISTS ] tablename 
        action [, ... ];
    
    其中action语法为:
    1
    2
    ALTER [ COLUMN ] column_name [ SET DATA ] TYPE data_type
        | MODIFY column_name data_type
    

    参考ALTER TABLE

参数说明

  • IF EXISTS

    如果不存在相同名称的表,不会抛出错误,而会返回一个通知,告知表不存在。

  • tablename

    需要修改的外表名称。

    取值范围:已存在的外表名。

  • new_owner

    外表的新所有者。

    取值范围:字符串,有效的用户名。

  • data_type

    现存字段的新类型。

    取值范围:字符串,需符合标识符的命名规范。

  • column_name

    现存字段的名称。

    取值范围:字符串,需符合标识符的命名规范。

修改外表语法中其它参数,请参见ALTER TABLE的参数说明

示例

  1. 创建名称为server_remote的外部服务器,对应的foreign data wrapper为GC_FDW。
    1
    CREATE SERVER server_remote FOREIGN DATA WRAPPER GC_FDW OPTIONS (address '10.10.0.100:25000,10.10.0.101:25000',dbname 'test', username 'test', password '{Password}');
    
  2. 创建名称为region的外表:
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    DROP FOREIGN TABLE IF EXISTS region;
    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'
    );
    
  3. 修改外表region选项:
    1
    ALTER FOREIGN TABLE region OPTIONS (SET schema_name 'test');
    
  4. 修改外表region的r_name字段类型为text:
    1
    ALTER FOREIGN TABLE region ALTER r_name TYPE TEXT;