mysql усекает архивную таблицу

#mysql #archive

#mysql #Архив

Вопрос:

У меня есть таблица с механизмом хранения архивов, и я хотел бы ее очистить. Ни delete то, ни truncate другое не будет работать из-за определения движка. Но есть ли какой-либо другой способ, кроме удаления всей таблицы и ее воссоздания?

Комментарии:

1. Я думаю, вы могли бы просто сделать это, удалить таблицу и воссоздать ее заново, но почему это не DELETE FROM table сработает? Какой движок вы используете?

Ответ №1:

Другим обходным путем было бы изменить ее на таблицу ЧЕРНЫХ ДЫР, а затем изменить ее обратно.

Комментарии:

1. После тестирования я обнаружил, что это эффективно. The . Файл ARZ сбрасывается без необходимости воссоздания определения таблицы.

2. Это лучший ответ.

3. Выполняет свою работу. 🙂

4. ALTER TABLE the_table ENGINE=BLACKHOLE; ALTER TABLE the_table ENGINE=ARCHIVE

Ответ №2:

Смотрите Ошибку # 15558 усечение не очищает таблицу в таблицах механизма хранения архивов

В принципе, разработчики хотели, чтобы это работало именно так. Исправление этой ошибки состояло в том, чтобы заставить ее возвращать ошибку при попытке использовать truncate для таблицы, хранящейся с помощью механизма хранения АРХИВА.

Единственный обходной путь — удалить и заново СОЗДАТЬ таблицу.

Комментарии:

1. Я надеялся, что существует какое-то обходное решение этой проблемы … Спасибо.