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