改字段名用 ALTER TABLE 的 CHANGE COLUMN:旧字段名放前面,新名字放后面,类型跟着写上。
-- 把 users 表的 uname 改名为 username,类型保持原样
ALTER TABLE users CHANGE COLUMN uname username VARCHAR(50) NOT NULL DEFAULT '';
类型必须和原来一致,写错了会顺带把字段类型也改掉。MySQL 8.0 起可以只改名、不写类型:
-- 只改名字,不动类型和约束
ALTER TABLE users RENAME COLUMN uname TO username;
一个表要改好几个字段名,就在一条 ALTER TABLE 里用逗号把多个 CHANGE COLUMN 串起来,一次改完。
-- 一条语句改两个字段名
ALTER TABLE users
CHANGE COLUMN uname username VARCHAR(50) NOT NULL,
CHANGE COLUMN uage age INT UNSIGNED NOT NULL DEFAULT 0;
改名只动表结构,表里的数据原样保留。旧字段名写错会直接报 Unknown column 'xxx',先 DESC 表名 看一眼字段名再写。