sql >> Database >  >> RDS >> Mysql

Laad gegevens van CSV in het bitveld in mysql

Ik heb eindelijk de oplossing gevonden en plaats deze hier voor toekomstig gebruik. Ik heb hulp gevonden op de handleiding voor het laden van mysql-gegevens .

Dus voor testdoeleinden is mijn tabelstructuur:

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

Mijn csv testbestand is:

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

De vraag om de csv . te laden in de tabel is:

 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;

Zoals je kunt zien, laad de csv je moet een cast cast(@valore as signed) . doen en in je csv u kunt de gehele notatie 1 . gebruiken of 0 om de bit . aan te geven waarde. Dit komt omdat BIT-waarden niet kunnen worden geladen met binaire notatie (bijvoorbeeld b'011010' ).



  1. Voorkomen dat MySQL impliciete standaardwaarden in niet-nulkolommen invoegt

  2. MySql selecteert dynamische rijwaarden als kolomnamen

  3. Kunnen we threading gebruiken in PL/SQL?

  4. ER_CON_COUNT_ERROR:Fout te veel verbindingen in node-mysql