首页 > 编程笔记

MySQL修改字段名

MySQL 中修改表字段名的语法规则如下:

ALTER TABLE <表名> CHANGE <旧字段名> <新字段名> <新数据类型>;

细节说明:
示例1:将数据表 tb_dept1 中的 location 字段名称改为 loc,数据类型保持不变,SQL 语句如下:

ALTER TABLE tb_dept1 CHANGE location loc VARCHAR(50);

使用 DESC 查看表 tb_dept1,会发现字段的名称已经修改成功,结果如下:
mysql> DESC tb_dept1;
+----------+---------------+---------+--------+---------+-------+
| Field    | Type          | Null    | Key    |Default  | Extra |
+----------+---------------+---------+--------+---------+-------+
| id       | int           | NO      | PRI    | NULL    |       |
| name     | varchar(30)   | YES     |        | NULL    |       |
| loc      | varchar(50)   | YES     |        | NULL    |       |
+----------+---------------+---------+--------+---------+-------+

示例2:将数据表 tb_dept1 中的 loc 字段名称改为 location,同时将数据类型变为 VARCHAR(60),SQL 语句如下:

ALTER TABLE tb_dept1 CHANGE loc location VARCHAR(60);

使用 DESC 查看表 tb_dept1,会发现字段的名称和数据类型均已经修改成功,结果如下:
mysql> DESC tb_dept1;
+----------+---------------+---------+--------+-------------+-------+
| Field    | Type          | Null    | Key    |Default      | Extra |
+----------+---------------+---------+--------+-------------+-------+
| id       | int           | NO      | PRI    | NULL        |       |
| name     | varchar(30)   | YES     |        | NULL        |       |
| location | varchar(60)   | YES     |        | NULL        |       |
+----------+---------------+---------+--------+-------------+-------+

温馨提示

CHANGE 也可以只修改数据类型,实现和 MODIFY 同样的效果,方法是将 SQL 语句中的“新字段名”和“旧字段名”设置为相同的名称,只改变“数据类型”。

由于不同类型的数据在机器中存储的方式及长度并不相同,修改数据类型可能会影响到数据表中已有的数据记录,因此当数据库表中已经有数据时,不要轻易修改数据类型。

推荐阅读