为了账号安全,请及时绑定邮箱和手机立即绑定

删除约束为什么是DROP INDEX ,index 不是索引么?

删除约束为什么是DROP INDEX  ,index 不是索引么?

正在回答

3 回答

如果说我们要删除一个unique key ,但是这个unique key在一张表中有很多个,这时候我们单纯的写drop unique key系统不知道的要删除的是哪一个,会全部删除,这不是我们想要的结果,好在的是每一个约束都存在一个名字,你可以吧把ndex理解成约束的名字,这样我们就可以指定删除某个约束了;

查看index :

SHOW INDEXES FROM table name;


1 回复 有任何疑惑可以回复我~
#1

admxj 提问者

非常感谢!
2016-01-02 回复 有任何疑惑可以回复我~
#2

fangshuiyu

为什么MySQL语法不是直接用相应的字段名作为索引删除相应唯一约束,反而多次一举去查索引名字,然后索引名字居然还跟字段相同,这是什么鬼
2016-03-30 回复 有任何疑惑可以回复我~

在你建立unique约束的同时系统会给你自动建立一个同名的索引,在删除unique约束的时候你直接去删除索引就可以了,只有unique约束可以这样使用。在删除主键和外键的时候还是要删除约束的,值得注意的是删除外键之后,由于创建外键的时候系统也自动创建了一个同名索引,删除外键索引还在,为了避免查询表结构的时候产生混乱,在删除外键之后最后顺带着连同索引一起删除。

1 回复 有任何疑惑可以回复我~
#1

PyBird

最佳答案,涨知识了
2018-09-28 回复 有任何疑惑可以回复我~

可是这样解释合理吗?后面有指定约束的名称啊!alter table 表名 drop index 名字; 

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
与MySQL的零距离接触
  • 参与学习       397028    人
  • 解答问题       3350    个

本课程涵盖全部MySQL数据库的基础,学习MySQL数据库的基础知识

进入课程

删除约束为什么是DROP INDEX ,index 不是索引么?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信