CSV
ストレージエンジンは、破損した CSV
テーブルを検証し、可能な場合は修復するための CHECK TABLE
および REPAIR TABLE
ステートメントをサポートしています。
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
ファイルの行のみが新しいテーブルにコピーされます。 破損した最初の行からテーブルの最後までのほかのすべての行は、有効な行であっても削除されます。