The CSV Storage Engine can read and append to files stored in CSV (comma-separated-values) format.
However, since MariaDB 10.0, a better storage engine is able to read and write such files: CONNECT.
The CSV storage engine is the default storage engine when using logging of SQL queries to tables.
mysqld --log-output=table
When you create a table using the CSV storage engine, three files are created:
<table_name>.frm
<table_name>.CSV
<table_name>.CSM
The .frm
file is the table format file.
The .CSV
file is a plain text file. Data you enter into the table is stored as plain text in comma-separated-values format.
The .CSM
file stores metadata about the table such as the state and the number of rows in the table.
Forgetting to add 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
Creating, inserting and selecting:
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 | +---+------------+-------+
Viewing in a text editor:
$ cat csv_test.CSV 1,"2011-11-16","one" 2,"2011-11-16","two" 3,"2011-11-16","three"
© 2019 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/csv-overview/