J'ai enfin trouvé la solution et je la poste ici pour référence future. J'ai trouvé de l'aide dans la page du manuel mysql load data .
Donc, à des fins de test, la structure de ma table est :
+--------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| id | int(11) | NO | PRI | NULL | |
| nome | varchar(45) | YES | | NULL | |
| valore | bit(1) | YES | | NULL | |
+--------+-------------+------+-----+---------+-------+
Mon csv
le fichier de test est :
1,primo_valore,1
2,secondo_valore,0
3,terzo_valore,1
La requête pour charger le csv
dans le tableau est :
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;
Comme vous pouvez le voir, chargez le csv
vous devez faire un casting cast(@valore as signed)
et dans votre csv
vous pouvez utiliser la notation entière 1
ou 0
pour indiquer le bit
évaluer. En effet, les valeurs BIT ne peuvent pas être chargées à l'aide de la notation binaire (par exemple, b'011010'
).