在MySQL中删除一个表是否也会删除索引?

61

文档中并没有明确提到 (http://dev.mysql.com/doc/refman/6.0/en/drop-table.html)。我之所以问这个问题是因为我在一个Rails项目的数据库迁移中看到了一个奇怪的行为,即开发人员在删除表之前删除了所有的索引,这似乎是不必要的。

3个回答

56

是的,需要。

但是,如果你有像RESTRICT这样的外键约束,以确保与其他表的引用完整性,那么在删除或截断表之前,你需要先删除这些键。


5

是的,它会删除索引。如果底层表不存在,就没有保留索引的理由。我怀疑向下迁移只是在一对一的基础上执行相反的向上迁移。


1

这是不必要的。但是,如果该表是外键关系的一部分,并且删除该表会破坏依赖关系,则可能会阻止您的DROP TABLE操作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接