Finalmente encontré la solución y la estoy publicando aquí para referencia futura. Encontré ayuda en la página del manual de carga de datos de mysql .
Entonces, para fines de prueba, la estructura de mi tabla es:
+--------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| id | int(11) | NO | PRI | NULL | |
| nome | varchar(45) | YES | | NULL | |
| valore | bit(1) | YES | | NULL | |
+--------+-------------+------+-----+---------+-------+
Mi csv
el archivo de prueba es:
1,primo_valore,1
2,secondo_valore,0
3,terzo_valore,1
La consulta para cargar el csv
en la tabla es:
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;
Como puede ver, cargue el csv
necesitas hacer un cast cast(@valore as signed)
y en tu csv
puedes usar la notación entera 1
o 0
para indicar el bit
valor. Esto se debe a que los valores BIT no se pueden cargar mediante notación binaria (por ejemplo, b'011010'
).