ALTER TABLE
ALTER TABLE用于修改表。
注意:AnalyticDB for MySQL暂不支持更改列的类型。
语法
ALTER TABLE table_name
ADD COLUMN (column_name column_definition,...)
| ADD {INDEX|KEY} [index_name] (column_name,...)
| ADD CLUSTERED [INDEX|KEY] [index_name] (column_name,...)
| DROP COLUMN column_name
| DROP {INDEX|KEY} index_name
| DROP CLUSTERED [INDEX|KEY] index_name
| MODIFY COLUMN column_name column_definition
| RENAME new_table_name
| TRUNCATE PARTITION {partition_names | ALL}
增加列
语法
ALTER TABLE db_name.table_name ADD column_name data_type;
示例
在CUSTOMER表中增加一列province
,数据类型为VARCHAR
。
ALTER TABLE adb_demo.customer ADD COLUMN province varchar comment '省份';
删除列
语法
ALTER TABLE db_name.table_name DROP column_name data_type;
示例
在CUSTOMER表中删除类型为VARCHAR
的province
列。
ALTER TABLE adb_demo.customer DROP COLUMN province;
更改COMMENT
语法
ALTER TABLE db_name.table_name MODIFY COLUMN column_name data_type comment 'new_comment';
示例
将CUSTOMER表中province
列的COMMENT
修改为顾客所属省份
。
ALTER TABLE adb_demo.customer MODIFY COLUMN province varchar comment '顾客所属省份';
设置NULL
仅支持将NOT NULL变更为NULL。
语法
ALTER TABLE db_name.table_name MODIFY COLUMN column_name data_type {NULL}
示例
将CUSTOMER表中province
列的值更改为可为空(NULL
)。
ALTER TABLE adb_demo.customer MODIFY COLUMN province varchar NULL;
更改DEFAULT值
语法
ALTER TABLE db_name.table_name MODIFY COLUMN column_name data_type DEFAULT 'default'
示例
将CUSTOMER表中性别sex
的默认值设置为0
(性别为男)。
ALTER TABLE adb_demo.customer MODIFY COLUMN sex int(11) NOT NULL DEFAULT 0;
新增聚集索引
一张表仅支持创建一个聚集索引。
语法
ALTER TABLE db_name.table_name ADD CLUSTERED KEY index_name(column_name1,column_name2);
ALTER TABLE db_name.table_name ADD CLUSTERED KEY index_name(column_name1);
示例
在CUSTOMER表中,为customer_id
和id_number
建立索引。
ALTER TABLE adb_demo.customer ADD CLUSTERED KEY c_k(customer_id, id_number);
删除索引
语法
ALTER TABLE db_name.table_name DROP CLUSTERED KEY index_name;
示例
删除CUSTOMER表中的索引。
ALTER TABLE adb_demo.customer DROP CLUSTERED KEY c_k;
更改列名
注意:不支持更改主键列的列名。
语法
ALTER TABLE db_name.table_name rename column column_name to column_newname
示例
将CUSTOMER表中的age
列名更新为new_age
。
ALTER TABLE customer rename column age to new_age;
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。
评论