4.5: Синтаксис REPAIR TABLE в MySQL
Главная Страница » Книги по PHP » MySQL уроки для начинающих с нуля » Синтаксис REPAIR TABLE в MySQL
REPAIR TABLE tbl_name[,tbl_name...] [QUICK] [EXTENDED]
REPAIR TABLE тоже работает только на таблицах типа MyISAM и аналогичен вызову myisamchk -r table_name.
Обычно вам никогда не придется выполнять эту команду, но в случае ошибок вы, очень вероятно, вернете все данные из таблицы MyISAM с помощью команды REPAIR TABLE. Если таблицы разрушаются, вы должны попробовать найти причину этого! Подробности по этому вопросу есть в разделе 11.4.1 «Что делать в случае сбоя MySQL».
REPAIR TABLE восстанавливает разрушенную таблицу. Команда возвращает таблицу со следующими столбцами (табл. 4.5):
Таблица 4.5. Отчет о ремонте
Столбец | Значение |
Table | Имя таблицы |
Ор | Обязательно repair |
Msg_type | Одно из 4-х: status, error, info или warning |
Msg_text | Собственно сообщение |
Обратите внимание, что вы можете получать много строк информации для каждой восстановленной таблицы. Последняя будет иметь тип Msg_type status и значение ОК, если все в порядке. Если значение ОК так и не появилось, вы должны попробовать восстанавливать таблицу с помощью myisamchk -о, поскольку REPAIR TABLE еще не выполняет все параметры myisamchk. В ближайшем будущем планируется сделать ее более гибкой.
Если задан QUICK, MySQL пробует делать REPAIR только для индексного дерева.
Если вы используете EXTENDED, MySQL создаст индекс по строкам, вместо того чтобы создать индекс одновременно с сортировкой: это может быть лучше, чем сортировка по ключам фиксированной длины, если вы имеете длинные ключи типа char(), которые сжимаются очень хорошо.