15.4.1 Восстановление и проверка таблиц CSV
Движок хранения CSV поддерживает операторы CHECK TABLE и REPAIR TABLE для проверки и, при возможности, восстановления поврежденной таблицы CSV.
При выполнении оператора CHECK TABLE, проверяется файл CSV на соответствие требованиям: правильные разделители полей, экранированные поля (соответствующие или отсутствующие кавычки), правильное число полей по сравнению с определением таблицы и наличие соответствующего файла метаданных CSV. Первая обнаруженная некорректная строка приводит к ошибке. Проверка корректной таблицы выдаёт результат, подобный представленному ниже:
mysql> CHECK TABLE csvtest;
+--------------+-------+----------+----------+
| Table | Op | Msg_type | Msg_text |
+--------------+-------+----------+----------+
| test.csvtest | check | status | OK |
+--------------+-------+----------+----------+
Проверка поврежденной таблицы возвращает ошибку, например,
mysql> CHECK TABLE csvtest;
+--------------+-------+----------+----------+
| Table | Op | Msg_type | Msg_text |
+--------------+-------+----------+----------+
| test.csvtest | check | error | Corrupt |
+--------------+-------+----------+----------+
Для восстановления таблицы используйте REPAIR
TABLE, который копирует как можно больше корректных строк из существующих данных файла CSV, а затем заменяет существующий файл CSV на восстановленные строки. Любые строки за пределами поврежденных данных будут утеряны.
mysql> REPAIR TABLE csvtest;
+--------------+--------+----------+----------+
| Table | Op | Msg_type | Msg_text |
+--------------+--------+----------+----------+
| test.csvtest | repair | status | OK |
+--------------+--------+----------+----------+
Во время восстановления только строки из файла CSV до первой поврежденной строки копируются в новую таблицу. Все остальные строки от первой поврежденной строки до конца таблицы удаляются, даже если они корректны.
© 2025 Oracle
Licensed under the GPLv2 License.