Обзор CSV
Движок хранения CSV может читать и добавлять записи в файлы, хранящиеся в формате CSV (comma-separated-values).
Однако, начиная с MariaDB 10.0, для чтения и записи таких файлов доступен более совершенный движок хранения: CONNECT.
Движок CSV и запись в таблицы
Движок CSV является стандартным движком при использовании записи SQL-запросов в таблицы.
mysqld --log-output=table
Файлы движка CSV
При создании таблицы с помощью движка CSV создаются три файла:
-
<table_name>.frm -
<table_name>.CSV -
<table_name>.CSM
Файл .frm содержит формат таблицы.
Файл .CSV — это обычный текстовый файл. Данные, которые вы вводите в таблицу, хранятся в формате CSV (значения, разделенные запятыми).
Файл .CSM содержит метаданные о таблице, такие как состояние и количество строк в таблице.
Ограничения
- Для CSV-таблиц не поддерживается индексирование.
- CSV-таблицы нельзя разбить на разделы.
- Столбцы в CSV-таблицах должны быть объявлены как NOT NULL.
- Транзакции не поддерживаются.
- Оригинальный формат CSV не обеспечивает совместимого с IETF разбора вложенных символов кавычек и запятых. Начиная с MariaDB 10.1.8, это можно сделать, установив параметр IETF_QUOTES при создании таблицы.
Примеры
Забыв добавить NOT NULL:
CREATE TABLE csv_test (x INT, y DATE, z CHAR(10)) ENGINE=CSV; ERROR 1178 (42000): The storage engine for the table doesn't support nullable columns
Создание, вставка и выборка:
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 | 2011-11-16 | one | | 2 | 2011-11-16 | two | | 3 | 2011-11-16 | three | +---+------------+-------+
Просмотр в текстовом редакторе:
$ cat csv_test.CSV 1,"2011-11-16","one" 2,"2011-11-16","two" 3,"2011-11-16","three"
См. также
© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/csv-overview/