Importieren einer Datei in MySQL
Hallo,
ich möchte gern Daten aus einer CSV-Datei (Trennzeichen TAB) in eine mysql-Tabele laden. Leider sind in der Datei nicht alle Spalten mit einem Wert gefüllt - d.h. TAB [leerer Wert] TAB
Beispieltabelle (da man einen TAB schlecht darstellen kann, habe ich als Trennzeichen hier ";" verwendet:
SQL:
Leider kommt dabei folgender Fehler:
Incorrect date value: '' for column 'Kunde_bis' at row 1
auch der Umweg über eine Variable hilft nicht (habe ich beim Suchen nach dem Fehler hier gefunden: http://stackoverflow.com/questions/2675323/mysql-load-data-null-values )
hier kommt der Fehler:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SET Kunde_bis = nullif(@Spalte03,'')' at line xxx
vielen Dank schonmal vorab
cvoigt
ich möchte gern Daten aus einer CSV-Datei (Trennzeichen TAB) in eine mysql-Tabele laden. Leider sind in der Datei nicht alle Spalten mit einem Wert gefüllt - d.h. TAB [leerer Wert] TAB
Beispieltabelle (da man einen TAB schlecht darstellen kann, habe ich als Trennzeichen hier ";" verwendet:
Kundennummer;Kunde_seit;Kunde_bis;Strasse;usw.
1;2011-01-01;;Hauptstrasse 7;...
2;2011-02-01;2011-03-01;Hauptstr. 1;...
3;2011-03-01;;Ortsstrasse 6b;...
SQL:
DROP TABLE IF EXISTS `test`;
CREATE TABLE `test` (
`Kundennummer` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`Kunde_seit` date not null,
`Kunde_bis` date default null,
`Strasse` varchar(50) default null,
...
PRIMARY KEY (`Kundennummer`)
) ENGINE=MyISAM ...;
LOAD DATA INFILE 'e:/Daten/.../datei.csv'
INTO TABLE dbname.test
FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES
(Kundennummer,Kunde_seit,Kunde_bis,Strasse,....)
Leider kommt dabei folgender Fehler:
Incorrect date value: '' for column 'Kunde_bis' at row 1
auch der Umweg über eine Variable hilft nicht (habe ich beim Suchen nach dem Fehler hier gefunden: http://stackoverflow.com/questions/2675323/mysql-load-data-null-values )
...
LOAD DATA INFILE 'e:/Daten/.../datei.csv'
INTO TABLE dbname.test
FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES
(Kundennummer,Kunde_seit,@Spalte03,Strasse,....)
SET Kunde_bis = nullif(@Spalte03,'')
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SET Kunde_bis = nullif(@Spalte03,'')' at line xxx
vielen Dank schonmal vorab
cvoigt
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 174568
Url: https://administrator.de/contentid/174568
Ausgedruckt am: 23.11.2024 um 07:11 Uhr
1 Kommentar