Teflon Ted
Teflon Ted

Reputation: 8846

Does dropping a table in MySQL also drop the indexes?

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.

Upvotes: 62

Views: 24376

Answers (3)

tvanfosson
tvanfosson

Reputation: 532455

Yes it would drop the index. There's no reason to keep the index if the underlying table isn't there. I suspect that the downward migration is just doing the opposite of the upward migration on a one-to-one basis.

Upvotes: 5

Daniel Schneller
Daniel Schneller

Reputation: 13926

It is unneccessary. Your DROP TABLE might however be prevented when the table is part of foreign key relationships and dropping your table would break the dependencies.

Upvotes: 1

AvatarKava
AvatarKava

Reputation: 15443

Yes, it does.

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.

Upvotes: 59

Related Questions