Datenimport CSV -> MySQL
Sebastian Becker
- datenbank
0 wahsaga0 Sebastian Becker0 dedlfix0 Sebastian Becker
Hallo,
ich möchte die Daten aus einer CSV-Datei in eine MySQL-Datenbank importieren. Die erste Zeile enthält die Feldnamen, die mit denen der entsprechenden Tabelle identisch sind. Die Tabelle hat allerdings mehr Felder als die CSV-Datei. Der Import klappt auch mittels phpMyAdmin und folgender SQL-Anweisung:
LOAD DATA LOCAL
INFILE '/is/htdocs/61037/www.meinedomain.de/oneadmin/export.txt'
REPLACE
INTO TABLE photo_gallery
FIELDS
TERMINATED BY '|'
OPTIONALLY ENCLOSED BY '"';
Allerdings werden die Felder nicht richtig zugewiesen. Die erste Zeile der CSV-Datei wird stattdessen auch importiert.
Auf welche Weise kann ich eine korrekte Zuweisung der Felder erreichen?
Danke für alle Hinweise, Grüße,
Sebastian Becker
hi,
Allerdings werden die Felder nicht richtig zugewiesen. Die erste Zeile der CSV-Datei wird stattdessen auch importiert.
das sollte sich erledigt haben, wenn du dich mit http://dev.mysql.com/doc/mysql/de/load-data.html beschäftigst, und die dort erwähnten weiteren parameter richtig benutzt.
gruß,
wahsaga
Hallo, wahsaga,
das sollte sich erledigt haben, wenn du dich mit http://dev.mysql.com/doc/mysql/de/load-data.html beschäftigst, und die dort erwähnten weiteren parameter richtig benutzt.
Danke für den Hinweis.
Beim Angeben einer Feldliste wie auf der genannten Seite beschrieben ...
LOAD DATA LOCAL
INFILE '/is/htdocs/61037/www.meinedomain.de/oneadmin/export.txt'
REPLACE
INTO TABLE photo_gallery (title,title_2,descp,descp_2,descpmore,descpmore_2,photo,creationyear,height,length,width,price,sizeunit,sold,photographer,category_id)
FIELDS
TERMINATED BY '|'
OPTIONALLY ENCLOSED BY '"';
meldet MySQL ...
#1064 - You have an error in your SQL syntax
Ich kann aber keinen Fehler finden - oder habe ich Tomaten auf den Augen?
Grüße,
Sebastian
Ich kann aber keinen Fehler finden - oder habe ich Tomaten auf den Augen?
Wahrscheinlich :-) Die Feldliste muss ganz nach hinten.
Hallo,
Ich kann aber keinen Fehler finden - oder habe ich Tomaten auf den Augen?
Wahrscheinlich :-) Die Feldliste muss ganz nach hinten.
In der Beschreibung heißt es ...
-------------------------------------------------------------------
Wenn Sie Daten nur in einige Tabellenspalten einladen wollen, geben Sie eine Felderliste an:
mysql> LOAD DATA INFILE 'personen.txt'
INTO TABLE personen (spalte1,spalte2,...);
Eine Felderliste müssen Sie ausserdem angeben, wenn die Reihenfolge der Felder in der Eingabedatei von der Reihenfolge der Tabellenspalten abweicht. Ansonsten kann MySQL nicht feststellen, wie er Eingabefelder Tabellenspalten zuordnen soll.
-------------------------------------------------------------------
Genau so habe ich es doch gemacht - oder etwa nicht?
Grüße,
Sebastian
hi,
Wenn Sie Daten nur in einige Tabellenspalten einladen wollen, geben Sie eine Felderliste an:
mysql> LOAD DATA INFILE 'personen.txt'
INTO TABLE personen (spalte1,spalte2,...);Genau so habe ich es doch gemacht - oder etwa nicht?
bei dir steht doch wohl nach eigener aussage noch
FIELDS
TERMINATED BY '|'
OPTIONALLY ENCLOSED BY '"';
dahinter - oder etwa nicht?
gruß,
wahsaga
Hallo, wahsaga,
bei dir steht doch wohl nach eigener aussage noch
FIELDS
TERMINATED BY '|'
OPTIONALLY ENCLOSED BY '"';dahinter - oder etwa nicht?
zumindest das TERMINATED BY '|' ist ja eine notwendige Information. Dies wird ja auch in der Anleitung so beschrieben ...
Grüße,
Sebastian
hi,
bei dir steht doch wohl nach eigener aussage noch
FIELDS
TERMINATED BY '|'
OPTIONALLY ENCLOSED BY '"';dahinter - oder etwa nicht?
zumindest das TERMINATED BY '|' ist ja eine notwendige Information. Dies wird ja auch in der Anleitung so beschrieben ...
und an welcher P-O-S-I-T-I-O-N steht diese option im manual ...?
frontscheinwerfer sind beim gängigen auto nach auch ein vorgeschriebenes bestandteil - und du held wunderst dich jetzt gerade, dass deine karre nicht durch den TÜV kommt, weil du sie _hinten_ am auto angebracht hast ...?
gruß,
wahsaga
Hallo,
und an welcher P-O-S-I-T-I-O-N steht diese option im manual ...?
In Beispielen beschränkt man sich normalerweise nur auf eine Schreibweise - das heißt aber nicht unbedingt, daß diese vorgeschrieben ist. Dennoch habe ich die Position schon mehrfach umgestellt - es funktioniert aber immer noch nicht.
frontscheinwerfer sind beim gängigen auto nach auch ein vorgeschriebenes bestandteil - und du held wunderst dich jetzt gerade, dass deine karre nicht durch den TÜV kommt, weil du sie _hinten_ am auto angebracht hast ...?
Der Vergleich hinkt. Bei einer Auflistung unabhängiger Anweisungen kommt es aus logischer Sicht nicht auf die Reihenfolge an. Mag sein, daß es bei mySQL anders ist oder daß ich die Logik nicht durchschaue ...
Grüße,
Sebastian
hi,
In Beispielen beschränkt man sich normalerweise nur auf eine Schreibweise - das heißt aber nicht unbedingt, daß diese vorgeschrieben ist. [...]
Bei einer Auflistung unabhängiger Anweisungen kommt es aus logischer Sicht nicht auf die Reihenfolge an.
trotzdem bist du vermutlich nicht auf die idee gekommen, die schlüsselworte LOAD DATA LOCAL ganz ans ende des statements zu schreiben, oder?
also scheinst du ja wohl doch vom vorhandensein einer reihenfolge auszugehen.
gruß,
wahsaga
Hallo, wahsaga und dedlfix,
trotzdem bist du vermutlich nicht auf die idee gekommen, die schlüsselworte LOAD DATA LOCAL ganz ans ende des statements zu schreiben, oder?
also scheinst du ja wohl doch vom vorhandensein einer reihenfolge auszugehen.
Ihr mögt Recht haben - nach mehreren Anläufen hat es mittlerweile geklappt :-)
Dafür tauchen jetzt neue Probleme auf - aber das ist ein neues Kapitel ...
Danke für die Hilfe - manchmal kommt man eben nicht auf das Einfachste ...
Grüße,
Sebastian
In der Beschreibung heißt es ...
Das ist nur ein Besipiel in dem einige optionale Elemente fehlen. Die genaue Syntax mit der Reihenfolge aller Elemente steht am Anfang der angegebenen Seite.
Hallo,
Das ist nur ein Besipiel in dem einige optionale Elemente fehlen. Die genaue Syntax mit der Reihenfolge aller Elemente steht am Anfang der angegebenen Seite.
auch bei einer Umstellung der Reihenfolge ...
LOAD DATA LOCAL
INFILE '/is/htdocs/61037/www.mydomain.de/oneadmin/export.txt'
REPLACE
INTO TABLE photo_gallery
FIELDS
TERMINATED BY '|'
(title,title_2,descp,descp_2,descpmore,descpmore_2,photo,creationyear,height,length,width,price,sizeunit,sold,photographer,category_id);
... bekomme ich eine Fehlermeldung :-(
Grüße,
Sebastian
hi,
auch bei einer Umstellung der Reihenfolge ...
... bekomme ich eine Fehlermeldung :-(
die da lautet?
gruß,
wahsaga