MySQL 8.4 發行說明
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
檔案中直到第一個損壞列的列才會複製到新表格。從第一個損壞列到表格結尾的所有其他列都會被移除,即使是有效的列也是如此。