#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. Я надеялся, что существует какое-то обходное решение этой проблемы … Спасибо.