Справочное руководство по MySQL




4.4.5 Синтаксис REPAIR TABLE

REPAIR TABLE tbl_name[,tbl_name...] [QUICK] [EXTENDED] [USE_FRM]

REPAIR TABLE работает только на таблицах типа MyISAM и эквивалентна выполнению на таблице myisamchk -r table_name.

При обыкновенной работе запускать эту команду не приходится, но если случится катастрофа, то с помощью REPAIR TABLE практически наверняка удастся вернуть все данные из таблицы MyISAM. Если таблицы сильно повреждены, то следует постараться выяснить, что послужило этому причиной! Обращайтесь к разделам section A.4.1 Что делать, если работа MySQL сопровождается постоянными сбоями и See section 7.1.3 Проблемы с таблицами MyISAM..

REPAIR TABLE ремонтирует таблицу, которая, возможно, повреждена. Команда возвращает таблицу со следующими столбцами:
Столбец Значение
Table Имя таблицы
Op Всегда ``repair''
Msg_type Одно из значений status, error, info или warning.
Msg_text Само сообщение.

Заметим, что по каждой ремонтируемой таблице может быть выдано много строк информации. Последняя строка будет представлять Msg_type status и, как правило, должна содержать OK. Если выдается что-либо отличное от OK, то следует попробовать исправить таблицу с помощью myisamchk -o, поскольку в REPAIR TABLE пока реализованы не все опции myisamchk. В скором будущем мы сделаем команду более гибкой.

Если указан QUICK, то MySQL будет пытаться сделать REPAIR только индексного дерева.

Если используется EXTENDED, то MySQL будет создавать индекс строка за строкой вместо создания по одному индексу единоразово с помощью сортировки; такая техника может работать лучше сортировки для ключей фиксированной длины, если речь идет о хорошо сжимаемых ключах типа char() большой длины.

Что касается MySQL 4.0.2, то тут для REPAIR существует режим USE_FRM. Используйте его, если отсутствует файл `.MYI' или поврежден его заголовок. В этом режиме MySQL воссоздаст таблицу, используя информацию из файла `.frm'. Этот вид исправления в myisamchk недоступен.


4.4.4 Синтаксис CHECK TABLEОглавление4.4.6 Использование myisamchk для профилактики таблиц и послеаварийного