Related Documentation Download this Manual
PDF (US Ltr) - 40.8Mb
PDF (A4) - 40.9Mb
Man Pages (TGZ) - 294.0Kb
Man Pages (Zip) - 409.0Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb
Excerpts from this Manual

MySQL 8.3 Reference Manual  /  ...  /  Repairing and Checking CSV Tables

18.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       |
+--------------+--------+----------+----------+
Warning

在修复过程中,只有从 CSV 文件到第一个损坏行的所有行将被复制到新表中。从第一个损坏行到表尾的所有行将被删除,即使它们是有效的。