Ich habe endlich die Lösung gefunden und poste sie hier für zukünftige Referenz. Ich habe Hilfe auf der manual page mysql load data
Also für Testzwecke ist meine Tabellenstruktur:
+--------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| id | int(11) | NO | PRI | NULL | |
| nome | varchar(45) | YES | | NULL | |
| valore | bit(1) | YES | | NULL | |
+--------+-------------+------+-----+---------+-------+
Meine csv
Testdatei ist:
1,primo_valore,1
2,secondo_valore,0
3,terzo_valore,1
Die Abfrage zum Laden der csv
in die Tabelle ist:
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;
Wie Sie sehen können, laden Sie die csv
Sie müssen einen Cast machen cast(@valore as signed)
und in Ihrer csv
Sie können die Integer-Notation 1
verwenden oder 0
um das bit
anzuzeigen Wert. Dies liegt daran, dass BIT-Werte nicht in binärer Notation geladen werden können (z. B. b'011010'
).