Informazioni su CSV
Contents
Lo Storage Engine può leggere e scrivere nei file registrati nel formato CSV (comma-separated-values).
Lo Storage Engine CSV e il logging sulle tabelle
Lo Storage Engine CSV è quello utilizzato per default per il logging delle query SQL nelle tabelle.
mysqld --log-output=table
Lo Storage Engine CSV e NOT NULL
Lo Storage Engine CSV non supporta le colonne con valori NULL e se si cerca di creare una tabella CSV con tali colonne si ottiene un errore:
MariaDB [test]> 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
Si può invece aggiungere NOT NULL alle definizioni di ogni colonna.
I file dello Storage Engine CSV
Quando si crea una tabella usando lo Storage Engine CSV, vengono creati tre file:
<nome_tabella>.frm<nome_tabella>.CSV<nome_tabella>.CSM
Il file .frm contiene il formato della tabella.
Il file .CSV è di puro testo. Contiene i dati inseriti nella tabella, registrati come testo semplice, con i vari valori separati da virgole.
Il file .CSM contiene i metadati sulla tabella, come lo stato e il numero delle righe.
Esempi
MariaDB [test]> CREATE TABLE csv_test (
-> x INT NOT NULL, y DATE NOT NULL, z CHAR(10) NOT NULL
-> ) ENGINE=CSV;
Query OK, 0 rows affected (0.11 sec)
MariaDB [test]> INSERT INTO csv_test VALUES
-> (1,CURDATE(),'one'),
-> (2,CURDATE(),'two'),
-> (3,CURDATE(),'three');
Query OK, 3 rows affected (0.00 sec)
Records: 3 Duplicates: 0 Warnings: 0
MariaDB [test]> SELECT * FROM csv_test; +---+------------+-------+ | x | y | z | +---+------------+-------+ | 1 | 2011-11-16 | one | | 2 | 2011-11-16 | two | | 3 | 2011-11-16 | three | +---+------------+-------+ 3 rows in set (0.00 sec)
$ cat csv_test.CSV 1,"2011-11-16","one" 2,"2011-11-16","two" 3,"2011-11-16","three"