Jag har äntligen hittat lösningen och jag lägger upp den här för framtida referens. Jag har hittat hjälp på mysql load data manual page .
Så för teständamål är min tabellstruktur:
+--------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| id | int(11) | NO | PRI | NULL | |
| nome | varchar(45) | YES | | NULL | |
| valore | bit(1) | YES | | NULL | |
+--------+-------------+------+-----+---------+-------+
Min csv
testfilen är:
1,primo_valore,1
2,secondo_valore,0
3,terzo_valore,1
Frågan för att ladda csv
i tabellen är:
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;
Som du kan se, ladda csv
du måste göra en cast cast(@valore as signed)
och i din csv
du kan använda heltalsnotationen 1
eller 0
för att ange bit
värde. Detta beror på att BIT-värden inte kan laddas med binär notation (till exempel b'011010'
).