MODIFY 与 CHANGE 改列要点
- MODIFY COLUMN 列 新类型:只改定义,列名不变
- CHANGE COLUMN 旧名 新名 新类型:可同时改名改类型
- 扩 VARCHAR 长度通常很快,缩长度可能触发表重建
- 改类型会按新规则转换旧数据,可能溢出或截断
- CHANGE 即使不改名也要把新旧名写两遍
- 改 DECIMAL 精度要兼顾历史小数位,避免四舍五入丢精度
MODIFY 与 CHANGE 改列示例
-- 只把 salary 精度提高,列名不变
ALTER TABLE staff MODIFY COLUMN salary DECIMAL(10,2);
-- 同时改名并改类型
ALTER TABLE staff CHANGE COLUMN name full_name VARCHAR(50);
-- 扩长度(基本不锁表)
ALTER TABLE staff MODIFY COLUMN phone VARCHAR(30);
避坑提醒:分不清用哪个:只动类型用 MODIFY,要连列名一起改才用 CHANGE,别在改名时用 MODIFY。