在 MySQL 中,可以使用 ALTER TABLE 语句修改表字段的数据类型,基本语法如下:
ALTER TABLE 表名 MODIFY COLUMN 字段名 新数据类型 [约束条件];
-
修改字段为整数类型假设要将 users 表中的 age 字段从 varchar(10) 修改为 int:
ALTER TABLE users MODIFY COLUMN age INT;
-
修改字段为字符串类型并指定长度将 products 表中的 name 字段从 varchar(50) 改为 varchar(100):
ALTER TABLE products MODIFY COLUMN name VARCHAR(100);
-
修改字段为日期类型并添加非空约束将 orders 表中的 create_time 字段改为 datetime 且不允许为空:
ALTER TABLE orders MODIFY COLUMN create_time DATETIME NOT NULL;
-
修改字段类型可能导致数据丢失或截断(例如将
varchar 改为 int 时,非数字内容会出错),建议先备份数据
-
如果字段上有索引或约束,修改类型可能需要先移除这些依赖
-
对于大表,修改字段类型可能会锁表一段时间,建议在业务低峰期操作
-
可以通过
DESCRIBE 表名; 命令查看修改后的字段信息
如果需要同时修改字段名和类型,可以使用 CHANGE 关键字:
ALTER TABLE 表名 CHANGE 原字段名 新字段名 新数据类型;