ALTER TABLE 是修改 MySQL 表结构的核心语句,支持增删改字段、调索引/主键、更名及改引擎;需语法准确、评估数据影响,并提前备份。
修改 MySQL 表结构主要通过 ALTER TABLE 语句实现,它支持添加、删除、修改字段,调整主键/索引,更改表名和存储引擎等操作。关键在于语法准确、注意数据影响,并在生产环境操作前务必备份。
在表末尾或指定位置插入新列:
ALTER TABLE 表名 ADD COLUMN 字段名 数据类型 [约束];
ADD COLUMN 字段名 INT AFTER 已有字段名; 或 FIRST 放最前ALTER TABLE users ADD COLUMN phone VARCHAR(20) NOT NULL DEFAULT '';
MODIFY 仅改类型和约束,不改名;CHANGE 可同时改名和定义:
ALTER TABLE users MODIFY email VARCHAR(100) NOT NULL;
ALTER TABLE users CHANGE old_name new_name INT UNSIGNED;
CHANGE 必须写两次字段名,大小写敏感,且会重建字段MySQL 8.0+ 支持标准 DROP COLUMN 和 RENAME COLUMN:
ALTER TABLE users DROP COLUMN temp_flag;
ALTER TABLE users RENAME COLUMN old_col TO new_col;
常用操作包括增删主键、唯一索引、普通索引:
ALTER TABLE users ADD PRIMARY KEY (id);(要求字段非空且无重复)ALTER TABLE users DROP PRIMARY KEY;(若为自增字段,可能需先删 AUTO_INCREMENT)ALTER TABLE users ADD INDEX idx_name (name);
ALTER TABLE users DROP INDEX idx_name;
操作前建议用 SHOW CREATE TABLE 表名; 查看当前结构,执行后可用 DESC 表名; 验证。大表修改可能锁表或耗时较长,线上环境优先考虑 pt-online-sche
