Най-накрая намерих решението и го публикувам тук за бъдещи справки. Намерих помощ в ръчната страница за данни за зареждане на mysql .
Така че за целите на теста структурата на моята таблица е:
+--------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| id | int(11) | NO | PRI | NULL | |
| nome | varchar(45) | YES | | NULL | |
| valore | bit(1) | YES | | NULL | |
+--------+-------------+------+-----+---------+-------+
Моят csv
тестовият файл е:
1,primo_valore,1
2,secondo_valore,0
3,terzo_valore,1
Заявката за зареждане на csv
в таблицата е:
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;
Както можете да видите, заредете csv
трябва да направите cast cast(@valore as signed)
и във вашия csv
можете да използвате целочислената нотация 1
или 0
за да посочите bit
стойност. Това е така, защото BIT стойностите не могат да бъдат заредени с двоична нотация (например b'011010'
).