MySQL ALTER TABLE 常用操作:增删改字段、索引与主键
在 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 数据库表结构优化的资料请关注本站其它相关文章!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









