更新时间:2024-07-24 GMT+08:00

ALTER TABLE

修改表结构时,针对聚合模型和非聚合模型的修改方式不同;针对Key列和Value列的修改方式也不同。其中:

  • 建表时指定AGGREGATE KEY时,为聚合模型;其他场景为非聚合模型。
  • 建表语句中的关键字'unique key''aggregate key''duplicate key'后面的列就是Key列,剩下的就是Value列。

聚合模型示例

聚合列不支持修改聚合类型。

  • col1列后添加new_col列(key列):

    ALTER TABLE example_db.my_table ADD COLUMN new_col INT DEFAULT "0" AFTER col1;

  • col1后添加new_col列(Value列SUM聚合类型):

    ALTER TABLE example_db.my_table ADD COLUMN new_col INT SUM DEFAULT "0" AFTER col1;

  • 修改col1列的类型为BIGINT(Key列):

    ALTER TABLE example_db.my_table MODIFY COLUMN col1 BIGINT DEFAULT "1";

  • 修改col1列的类型为BIGINT(Value列):

    ALTER TABLE example_db.my_table MODIFY COLUMN col1 BIGINT MAX DEFAULT "1";

  • 删除col1列:

    ALTER TABLE example_db.my_table DROP COLUMN col1;

非聚合模型示例

  • col1列后添加new_col列(添加Key列):

    ALTER TABLE example_db.my_table ADD COLUMN new_col INT KEY DEFAULT "0" AFTER col1;

  • col1列后添加new_col列(添加Value列):

    ALTER TABLE example_db.my_table ADD COLUMN new_col INT DEFAULT "0" AFTER col1;

  • 修改col1列的类型为BIGINT(Key列):

    ALTER TABLE example_db.my_table MODIFY COLUMN col1 BIGINT KEY DEFAULT "1";

  • 修改col1列的类型为BIGINT(Value列):

    ALTER TABLE example_db.my_table MODIFY COLUMN col1 BIGINT DEFAULT "1";

  • 删除col1列:

    ALTER TABLE example_db.my_table DROP COLUMN col1;