MySQL 8从零开始学(视频教学版)
上QQ阅读APP看书,第一时间看更新

5.3 删除索引

MySQL中删除索引使用ALTER TABLE或者DROP INDEX语句,两者可实现相同的功能,DROP INDEX语句在内部被映射到一个ALTER TABLE语句中。

1. 使用ALTER TABLE删除索引

ALTER TABLE删除索引的基本语法格式如下:

     ALTER TABLE table_name DROP INDEX index_name;

【例5.19】删除book表中名称为UniqidIdx的唯一索引,SQL语句如下:

首先查看book表中是否有名称为UniqidIdx的索引,输入SHOW语句如下:

查询结果可以看到,book表中有名称为UniqidIdx的唯一索引,该索引在bookid字段上创建。下面删除该索引,输入删除语句如下:

语句执行完毕,使用SHOW语句查看索引是否被删除:

由结果可以看到,book表中已经没有名称为UniqidIdx的唯一索引,删除索引成功。

提示

添加AUTO_INCREMENT约束字段的唯一索引不能被删除。

2. 使用DROP INDEX语句删除索引

DROP INDEX删除索引的基本语法格式如下:

     DROP INDEX index_name ON table_name;

【例5.20】删除book表中名称为BkAuAndInfoIdx的组合索引,SQL语句如下:

语句执行完毕,使用SHOW语句查看索引是否被删除:

可以看到,book表中已经没有名称为BkAuAndInfoIdx的组合索引,删除索引成功。

提示

删除表中的列时,如果要删除的列为索引的组成部分,则该列也会从索引中删除。如果组成索引的所有列都被删除,则整个索引将被删除。