sql >> Base de Datos >  >> RDS >> Mysql

Cargue datos de CSV dentro del campo de bits en mysql

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' ).