ALTER TABLE语句用于修改表。本文为您介绍ALTER TABLE的用法。

使用限制

Hologres仅支持为表重命名、增加列及修改部分表属性等修改表操作。

重命名

语法如下。
ALTER TABLE table_name RENAME TO new_table_name;
如果目标表不存在,或者重命名目标表为已存在的表名称,系统均会返回异常。
示例语句如下。
ALTER TABLE test RENAME TO holo_test ;

增加列

语法如下。
ALTER TABLE IF EXISTS table_name ADD COLUMN new_column_name data_type;
ALTER TABLE IF EXISTS table_name ADD COLUMN col_add_1 data_type, ADD COLUMN col_add_2 TEXT IF NOT EXISTS col_add_2 data_type; 
示例语句如下。
ALTER TABLE IF EXISTS holo_test ADD COLUMN id int;

修改表属性

通常,设置表属性必须与创建表在同一个事务中执行。但是以下表属性可以单独执行修改操作,语句如下。

CALL SET_TABLE_PROPERTY('tbl', 'bitmap_columns', '[columnName [,...]]'); 
CALL SET_TABLE_PROPERTY('tbl', 'dictionary_encoding_columns', '[columnName [,...]]');
CALL SET_TABLE_PROPERTY('tbl', 'time_to_live_in_seconds', '<non_negative_literal>');
使用示例如下所示:
  • 修改bitmap_columns比特编码列,示例语句如下。
    CALL SET_TABLE_PROPERTY('tbl', 'bitmap_columns', 'a,b');
  • 修改dictionary_encoding_columns字典编码列,示例语句如下。
    CALL SET_TABLE_PROPERTY('tbl', 'dictionary_encoding_columns', 'a,b');
  • 修改表数据的生存时间,示例语句如下。
    CALL SET_TABLE_PROPERTY('tbl', 'time_to_live_in_seconds', '86400');