Finalmente encontrei a solução e estou postando aqui para referência futura. Encontrei ajuda na página de manual de dados de carregamento do mysql .
Então, para fins de teste, minha estrutura de tabela é:
+--------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| id | int(11) | NO | PRI | NULL | |
| nome | varchar(45) | YES | | NULL | |
| valore | bit(1) | YES | | NULL | |
+--------+-------------+------+-----+---------+-------+
Meu
csv
arquivo de teste é:1,primo_valore,1
2,secondo_valore,0
3,terzo_valore,1
A consulta para carregar o
csv
na tabela é: 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 você pode ver, carregue o
csv
você precisa fazer um cast cast(@valore as signed)
e em seu csv
você pode usar a notação de inteiro 1
ou 0
para indicar o bit
valor. Isso ocorre porque os valores de BIT não podem ser carregados usando notação binária (por exemplo, b'011010'
).