MySQL如何在数据表的第一列前添加新列?
MySQL 在数据表第一列前添加新列的实现方法
要在数据表现有第一列之前新增列,直接使用ALTER TABLE语句搭配FIRST关键字即可,无需手动重建整张表。
核心语法
ALTER TABLE 目标表名 ADD COLUMN 新列名 列数据类型 [列约束规则] FIRST;
实操示例
假设现有一张存储用户信息的users表,原始列顺序为id、username、create_time,现在需要在表最开头新增一个row_seq字段(BIGINT无符号类型,非空,用于存储行序列号),执行以下SQL即可完成操作:
ALTER TABLE users ADD COLUMN row_seq BIGINT UNSIGNED NOT NULL COMMENT '行序列号' FIRST;
语句执行完成后,row_seq会成为users表的第一列,原有所有列自动向后顺延。
新增列位置效果参考图
补充说明
- 若需要把新列添加到某一指定已有列的后方,而非表的最开头,只需将语句末尾的
FIRST替换为AFTER 参考列名即可,比如要把新列加在username列后方,对应位置声明写为AFTER username - MySQL 5.6及以上版本的InnoDB引擎支持在线DDL,常规加列操作不会长时间锁表,但数据量超百万的大表执行该操作,仍建议选在业务低峰期进行
- 如果新增列时不写
FIRST或AFTER位置声明,新列默认会被添加到表的最后一列
内容的提问来源于stack exchange,提问作者sanvi ritu
相关产品推荐
相关产品推荐

