Jeg har endelig fundet løsningen, og jeg poster den her til fremtidig reference. Jeg har fundet hjælp på mysql-indlæsningsdatamanualsiden .
Så til testformål er min tabelstruktur:
+--------+-------------+------+-----+---------+-------+
| 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 er:
1,primo_valore,1
2,secondo_valore,0
3,terzo_valore,1
Forespørgslen om at indlæse csv
i tabellen er:
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, skal du indlæse csv
du skal lave en cast cast(@valore as signed)
og i din csv
du kan bruge heltalsnotationen 1
eller 0
for at angive bit
værdi. Dette skyldes, at BIT-værdier ikke kan indlæses ved hjælp af binær notation (f.eks. b'011010'
).