Mysql
 sql >> Database >  >> RDS >> Mysql

Carica i dati da CSV all'interno del campo bit in mysql

Ho finalmente trovato la soluzione e la pubblico qui per riferimento futuro. Ho trovato aiuto nella pagina di manuale dei dati di caricamento di mysql .

Quindi, a scopo di test, la struttura della mia tabella è:

+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| id     | int(11)     | NO   | PRI | NULL    |       |
| nome   | varchar(45) | YES  |     | NULL    |       |
| valore | bit(1)      | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+

Il mio csv il file di prova è:

1,primo_valore,1
2,secondo_valore,0
3,terzo_valore,1

La query per caricare il csv nella tabella è:

 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;

Come puoi vedere, carica il csv devi fare un cast cast(@valore as signed) e nel tuo csv puoi usare la notazione intera 1 o 0 per indicare il bit valore. Questo perché i valori BIT non possono essere caricati utilizzando la notazione binaria (ad esempio, b'011010' ).