MySQL可以使用MODIFY COLUMN / ALTER COLUMN / CHANGE三种方式修改列属性。
对于部分只需要修改表定义而不需要修改表数据的操作,使用ALTER COLUMN操作可以避免数据发生移动,提高ALTER 操作效率。
仅需要修改表结构的操作有:
1、更改字段的默认值
2、增加和删除字段的AUTO_INCREMENT属性(主要是增加属性而不是增加字段)
3、增删改ENUM的常量值
但MySQL 仅支持使用ALTER COLUMN来修改或删除默认值,语法为:
ALTER TABLE TB_NAME ALTER [COLUMN] col_name {SET DEFAULT literal | DROP DEFAULT}
准备测试数据
DROP TABLE tb001; CREATE TABLE tb001(id INT auto_increment PRIMARY KEY,c1 VARCHAR(20)); INSERT INTO tb001(c1) SELECT user FROM mysql.user;
测试MODIFY COLUMN
ALTER TABLE tb001 MODIFY COLUMN C1 VARCHAR(20) NOT NULL DEFAULT 'A1';
测试ALTER COLUMN
ALTER TABLE tb001 ALTER COLUMN C1 SET DEFAULT 'A2';