MySQL 8.0 参考手册  / 第 16 章替代存储引擎  / 16.4 CSV存储引擎  /  15.4.1 修复和检查 CSV 表

15.4.1 修复和检查 CSV 表

CSV存储引擎支持 CHECK TABLEREPAIR 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 文件到第一个损坏行的行被复制到新表中。从第一个损坏的行到表末尾的所有其他行都将被删除,即使是有效行。