MySQL ALTER TABLE 常用操作:增删改字段、索引与主键

拾光
拾光
发布时间:2026-10-13 | 4人浏览过
原创

在 MySQL 数据库管理中,ALTER TABLE 是修改现有表结构的核心命令。本文将详细解析如何使用该语句进行字段的增删改、表的更名,以及主键和各类索引的管理,提供可直接复制使用的代码示例。

1. 删除列

若要移除表中不再需要的字段,使用 DROP 子句。执行后该列及其所有数据将被永久删除,请确保已备份重要数据。

ALTER TABLE 表名 DROP 列名称;

2. 增加列

向表中添加新字段时,需指定列名、数据类型及约束条件(如非空 NOT NULL)。若为已有数据的表添加 NOT NULL 列,必须提供默认值 DEFAULT,否则语句将报错。

ALTER TABLE 表名 ADD 列名称 INT NOT NULL COMMENT '注释说明';

3. 修改列的类型或重命名

使用 CHANGE 关键字可以同时修改列的名称和数据类型。如果仅改变类型而不改变名字,新列名应与旧列名相同;如果既要改名也要改类型,则分别指定新旧列名。此操作会重新定义该列的定义。

-- 修改类型或同时重命名
ALTER TABLE 表名 CHANGE 原列名称 新列名称 BIGINT NOT NULL COMMENT '注释说明';

4. 重命名表

通过 RENAME 子句可以直接更改表的名称,不影响表中的数据结构和内容。

ALTER TABLE 原表名 RENAME 新表名;

5. 管理主键

主键用于唯一标识表中的每一行记录。以下操作展示了如何添加和删除主键:

第1步:添加主键

为主表添加单一或多列联合主键,使用 ADD CONSTRAINT 或直接在括号中指定列。风险提醒:添加主键前请确保相关列数据唯一且非空,否则会导致失败。

-- 添加带约束名的主键
ALTER TABLE sj_resource_charges ADD CONSTRAINT PK_SJ_RESOURCE_CHARGES PRIMARY KEY (resid, resfromid);

-- 或者直接添加主键(无约束名)
ALTER TABLE 表名 ADD PRIMARY KEY (列名);

第2步:删除主键

删除现有主键,通常需要先确认是否有关联的外键引用,若有需先解除外键约束。

ALTER TABLE 表名 DROP PRIMARY KEY;

6. 管理索引

索引可加速查询,但会降低写入速度。以下是常见索引的创建与删除方法:

第1步:添加普通索引

创建非唯一性索引,允许列中存在重复值。

ALTER TABLE 表名 ADD INDEX 索引名称 (列名);

第2步:添加唯一索引

创建唯一性索引,确保列中所有值都是唯一的,但允许有空值(具体行为视存储引擎而定)。

ALTER TABLE 表名 ADD UNIQUE 索引名称 (列名);

第3步:删除索引

移除不再需要的索引以优化写入性能。注意不同 MySQL 版本中删除索引的语法可能略有差异,推荐使用 DROP INDEX 或在 ALTER TABLE 中使用 DROP INDEX。

ALTER TABLE 表名 DROP INDEX 索引名称;

以上就是 MySQL ALTER TABLE 常用操作的详细内容,更多关于 MySQL 数据库表结构优化的资料请关注本站其它相关文章!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表