MySQL 8.4 发行说明
The 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
文件中到第一个损坏行之前的行复制到新表。从第一个损坏行到表尾的所有其他行,即使是有效行,也会被删除。