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;