Удаление таблицы в MySQL также приводит к удалению индексов?
Вопрос
В документации это явно не указано (http://dev.mysql.com/doc/refman/6.0/en/drop-table.html).Я спрашиваю, потому что только что видел любопытную миграцию базы данных в проекте Rails, где разработчик удалял все индексы перед удалением таблицы, и это казалось ненужным.
Решение
Да, это так.
Однако если у вас есть ограничения внешнего ключа, такие как RESTRICT, которые обеспечивают ссылочную целостность с другими таблицами, вам потребуется удалить эти ключи перед удалением или усечением таблицы.
Другие советы
Да, это приведет к падению индекса.Нет смысла сохранять индекс, если базовой таблицы там нет.Я подозреваю, что нисходящая миграция прямо противоположна восходящей миграции в соотношении один к одному.
В этом нет необходимости.Однако ваша DROP TABLE может быть предотвращена, если таблица является частью отношений внешнего ключа, и удаление вашей таблицы приведет к нарушению зависимостей.