ALTER

ALTER 可以用来修改表的设置或者表中的数据:

  • 添加/删除/修改列
  • 重命名表

Syntax

  1. ALTER TABLE [db.]table
  2. [ADD COLUMN name type [options]
  3. | DROP COLUMN name
  4. | MODIFY COLUMN name type
  5. | RENAME name
  6. ]

示例

增加列

在表中增加新列:

  1. ALTER TABLE monitor ADD COLUMN load_15 double;

列的定义和 CREATE 中的定义方式一样。

我们可以设置新列的位置。比如放在第一位:

  1. ALTER TABLE monitor ADD COLUMN load_15 double FIRST;

或者放在某个已有列之后:

  1. ALTER TABLE monitor ADD COLUMN load_15 double AFTER memory;

增加一个带默认值的 Tag 列(加入 Primary key 约束):

  1. ALTER TABLE monitor ADD COLUMN app STRING DEFAULT 'shop' PRIMARY KEY;

移除列

从表中移除列:

  1. ALTER TABLE monitor DROP COLUMN load_15;

后续的所有查询立刻不能获取到被移除的列。

修改列类型

修改列的数据类型

  1. ALTER TABLE monitor MODIFY COLUMN load_15 STRING;

被修改的的列不能是 tag 列(primary key)或 time index 列,同时该列必须允许空值 NULL 存在来保证数据能够安全地进行转换(转换失败时返回 NULL)。

重命名表

  1. ALTER TABLE monitor RENAME monitor_new;

该命令只是重命名表,不会修改表中的数据。