Невозможно удалить таблицу после создания таблицы с неверным движком

Я пытаюсь удалить таблицу, содержащую несколько сотен тысяч записей на основе столбцов. Обычно при создании базы данных я использую движок на основе столбцов (infinidb), но в этом случае я забыл включить оператор ENGINE. Так что база данных практически непригодна для моих нужд. Теперь у меня есть база данных, полная таблиц, которые уходят навсегда (прошло два часа, и ничего не произошло). Я попробовал команду ALTER TABLE table ENGINE=INFINIDB, но опять же, она занимает вечность (см. Выше, два часа). РЕДАКТИРОВАТЬ: первая команда, которую я попробовал, был DROP TABLE. Он висел на каждом столе. Затем я попробовал команду ALTER на случай, если по какой-то причине это было быстрее, но это не так.

Есть ли другой способ избавиться от этой базы данных? Например, вручную перейдя в каталог / mysql / и удалив базу данных? Думаю, я мог бы просто переименовать его и оставить, но я бы лучше полностью избавился от него, чтобы он не занимал место.

2 ответа

Оказалось, что другой процесс (веб-сайт) использовал эту базу данных и имел несколько запросов, которые "зависали" на сервере SQL и вызывали зависание таблицы из-за базы данных с использованием неверного механизма, который, как я предполагаю, был InnoDB, так как я не указывал движок, когда первоначально использовал команду "CREATE TABLE table1 AS SELECT * FROM table2". Нам наконец-то удалось стереть базу данных и начать все сначала. Спасибо за вашу помощь.

Прежде всего, вы сказали, что не могу бросить стол. Но в посте вы упомянули ALTER TABLE table ENGINE=INFINIDB,

Но DROP != ALTER это две разные вещи.

Таким образом, вы можете сделать следующее:

  • CREATE Новая таблица с той же структурой, но двигатель вам нужен.
  • копия (UPDATE) данные из старой таблицы в ту, которую вы только что создали.
  • DROP старый стол
  • RENAMEпереименовать новый в старое имя
Другие вопросы по тегам