在 MySQL 中删除表也会删除索引吗?

2021-12-21 00:00:00 indexing database mysql sql-drop

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

It's not explicitly mentioned in the documentation (http://dev.mysql.com/doc/refman/6.0/en/drop-table.html). I ask because I just saw a curious database migration in a Rails project where the developer was removing all the indexes before dropping the table, and that seemed unnecessary.

推荐答案

是的,确实如此.

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

However, if you have foreign key constraints such as RESTRICT that ensure referential integrity with other tables, you'll want to drop those keys prior to dropping or truncating a table.

相关文章