MySQL 8.3 Release Notes
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 |
+--------------+--------+----------+----------+
Warning
在修复过程中,只有从 CSV
文件到第一个损坏行的所有行将被复制到新表中。从第一个损坏行到表尾的所有行将被删除,即使它们是有效的。