在MySQL中删除表是否也会丢弃索引?

Tef*_*Ted 49 mysql database indexing sql-drop

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

Ava*_*ava 47

是的,它确实.

但是,如果您有外键约束(如RESTRICT)以确保与其他表的引用完整性,则您需要在删除或截断表之前删除这些键.


tva*_*son 5

是的,它会删除索引。如果基础表不存在,则没有理由保留索引。我怀疑向下迁移只是在一对一的基础上做与向上迁移相反的事情。