MySQL 9.0 发行说明
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
文件中到第一个损坏行为止的行才会被复制到新表。第一个损坏行到表尾的所有其他行都将被删除,即使是有效行。