Проверка и восстановление CSV-таблиц
CSV-таблицы поддерживают операторы CHECK TABLE и REPAIR TABLE.
CHECK TABLE пометит таблицу как поврежденную, если обнаружит проблему, а REPAIR TABLE восстановит строки до первой поврежденной строки, отбросив остальные.
Примеры
CREATE TABLE csv_test (
x INT NOT NULL, y DATE NOT NULL, z CHAR(10) NOT NULL
) ENGINE=CSV;
INSERT INTO csv_test VALUES
(1,CURDATE(),'one'),
(2,CURDATE(),'two'),
(3,CURDATE(),'three');
SELECT * FROM csv_test; +---+------------+-------+ | x | y | z | +---+------------+-------+ | 1 | 2013-07-08 | one | | 2 | 2013-07-08 | two | | 3 | 2013-07-08 | three | +---+------------+-------+
Используя редактор, фактический файл будет выглядеть следующим образом
$ cat csv_test.CSV 1,"2013-07-08","one" 2,"2013-07-08","two" 3,"2013-07-08","three"
Давайте внесём некоторое повреждение с помощью лишней кавычки во второй строке:
1,"2013-07-08","one" 2","2013-07-08","two" 3,"2013-07-08","three"
CHECK TABLE csv_test; +---------------+-------+----------+----------+ | Table | Op | Msg_type | Msg_text | +---------------+-------+----------+----------+ | test.csv_test | check | error | Corrupt | +---------------+-------+----------+----------+
Мы можем восстановить это, но все строки с повреждённой строки и далее будут потеряны:
REPAIR TABLE csv_test; +---------------+--------+----------+----------------------------------------+ | Table | Op | Msg_type | Msg_text | +---------------+--------+----------+----------------------------------------+ | test.csv_test | repair | Warning | Data truncated for column 'x' at row 2 | | test.csv_test | repair | status | OK | +---------------+--------+----------+----------------------------------------+ SELECT * FROM csv_test; +---+------------+-----+ | x | y | z | +---+------------+-----+ | 1 | 2013-07-08 | one | +---+------------+-----+
Содержимое, воспроизведённое на этом сайте, является собственностью соответствующих владельцев, и это содержимое не проверяется заранее MariaDB. Мнения, информация и мнения, выраженные в этом содержании, не обязательно отражают мнения MariaDB или любой другой стороны.
© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/checking-and-repairing-csv-tables/