Spec-Zone .ru
спецификации, руководства, описания, API

14.5.1. Восстановление и Проверка Таблиц CSV

Механизмы хранения CSV поддерживают CHECK и REPAIR операторы, чтобы проверить и если возможное восстановление поврежденная таблица CSV.

Работая CHECK оператор, файл CSV будет проверен на законность, ища корректных разделителей полей, оставленные поля (соответствие или без вести пропавшие кавычек), корректное число полей по сравнению с табличным определением и существованием соответствующего метафайла CSV. Первая недопустимая обнаруженная строка сообщит об ошибке. Проверка допустимой таблицы производит вывод как показанный ниже:

mysql> check table csvtest;+--------------+-------+----------+----------+| Table        | Op    | Msg_type | Msg_text |+--------------+-------+----------+----------+| test.csvtest | check | status   | OK       |+--------------+-------+----------+----------+1 row in set (0.00 sec)

Проверка на поврежденной таблице возвращает отказ:

mysql> check table csvtest;+--------------+-------+----------+----------+| Table        | Op    | Msg_type | Msg_text |+--------------+-------+----------+----------+| test.csvtest | check | error    | Corrupt  |+--------------+-------+----------+----------+1 row in set (0.01 sec)

Если проверка перестала работать, таблица отмечается, поскольку разрушенный (повреждают). Как только таблица была отмечена как поврежденная, она автоматически восстанавливается когда Вы следующий запуск CHECK или выполните a SELECT оператор. Соответствующее поврежденное состояние и новое состояние будут выведены на экран, работая CHECK:

mysql> check table csvtest;+--------------+-------+----------+----------------------------+| Table        | Op    | Msg_type | Msg_text                   |+--------------+-------+----------+----------------------------+| test.csvtest | check | warning  | Table is marked as crashed || test.csvtest | check | status   | OK                         |+--------------+-------+----------+----------------------------+2 rows in set (0.08 sec)

Чтобы восстановить таблицу, можно использовать REPAIR, это копирует так много допустимых строк с существующих данных CSV насколько возможно, и затем заменяет существующий файл CSV восстановленными строками. Любые строки вне поврежденных данных теряются.

mysql> repair table csvtest;+--------------+--------+----------+----------+| Table        | Op     | Msg_type | Msg_text |+--------------+--------+----------+----------+| test.csvtest | repair | status   | OK       |+--------------+--------+----------+----------+1 row in set (0.02 sec)
Предупреждение

Отметьте, что во время восстановления, только строки от файла CSV до первой поврежденной строки копируются в новую таблицу. Все другие строки от первой поврежденной строки до конца таблицы удаляются, даже допустимые строки.