REPAIR TABLE tbl_name[,tbl_name...] [QUICK] [EXTENDED] [USE_FRM]
REPAIR TABLE работает только
на таблицах типа MyISAM и
эквивалентна выполнению на
таблице myisamchk -r table_name.
При обыкновенной работе запускать
эту команду не приходится, но если
случится катастрофа, то с помощью
REPAIR TABLE практически
наверняка удастся вернуть все
данные из таблицы MyISAM.
Если таблицы сильно повреждены, то
следует постараться выяснить, что
послужило этому причиной!
Обращайтесь к разделам
Раздел A.4.1, «Что делать, если работа MySQL сопровождается постоянными сбоями» и See
Раздел 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 большой
длины. Это такой же ремонт, как
делается с помощью myisamchk
--safe-recover.
Что касается MySQL 4.0.2, то тут для
REPAIR существует режим
USE_FRM. Используйте его,
если отсутствует файл
.MYI или поврежден его
заголовок. В этом режиме MySQL
воссоздаст таблицу, используя
информацию из файла .frm.
Этот вид исправления в
myisamchk недоступен.
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.
© 1995-2005 MySQL AB. All rights reserved.
