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';