Удаляет ли таблица в MySQL также индексы? - PullRequest
47 голосов
/ 20 мая 2009

Это явно не упоминается в документации (http://dev.mysql.com/doc/refman/6.0/en/drop-table.html). Я спрашиваю, потому что я только что увидел любопытную миграцию базы данных в проекте Rails, где разработчик удалял все индексы перед удалением таблицы, и это казалось ненужным.

Ответы [ 3 ]

44 голосов
/ 20 мая 2009

Да, это так.

Однако, если у вас есть ограничения внешнего ключа, такие как RESTRICT, которые обеспечивают ссылочную целостность с другими таблицами, вы должны отбросить эти ключи перед удалением или усечением таблицы.

2 голосов
/ 20 мая 2009

Да, индекс упал бы. Нет причин сохранять индекс, если основной таблицы там нет. Я подозреваю, что нисходящая миграция просто противоположна восходящей миграции на индивидуальной основе.

1 голос
/ 20 мая 2009

Это ненужно. Однако ваш DROP TABLE может быть предотвращен, когда таблица является частью отношений внешнего ключа, и удаление вашей таблицы нарушит зависимости.

...