Ho finalmente trovato la soluzione e la pubblico qui per riferimento futuro. Ho trovato aiuto nella pagina di manuale dei dati di caricamento di mysql .
Quindi, a scopo di test, la struttura della mia tabella è:
+--------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| id | int(11) | NO | PRI | NULL | |
| nome | varchar(45) | YES | | NULL | |
| valore | bit(1) | YES | | NULL | |
+--------+-------------+------+-----+---------+-------+
Il mio csv
il file di prova è:
1,primo_valore,1
2,secondo_valore,0
3,terzo_valore,1
La query per caricare il csv
nella tabella è:
load data infile 'test.csv' into table test
fields terminated by ',' lines terminated by '\n'
(id, nome, @valore) set
valore=cast(@valore as signed);
show warnings;
Come puoi vedere, carica il csv
devi fare un cast cast(@valore as signed)
e nel tuo csv
puoi usare la notazione intera 1
o 0
per indicare il bit
valore. Questo perché i valori BIT non possono essere caricati utilizzando la notazione binaria (ad esempio, b'011010'
).