Import einer CSV Datei in MySQL

Software besorgen und anwenden
Post Reply
Message
Author
r.b.
Posts: 11
Joined: 14. Oct 2007 11:41
Location: Soltau
Contact:

Import einer CSV Datei in MySQL

#1 Post by r.b. »

Hallo zusammen,

wir möchten gerne eine CSV-Datei in eine MySQL Datenbank/Tabelle importieren.
Die Tabelle und die CSV-Datei haben 20 Spalten bzw. Felder. Der Text ist in Hochkommatas und die Felder sind mit Semikolons getrennt.

Das Problem:

Die Datensätze in der CSV-Datei sind nicht in einer Zeile. Wenn ich also die CSV-Datei mit z.B. mit phpmyadmin importiere, dann folgt die Fehlermeldung über eine ungültige Anzahl von Feldern.

Der Import soll später scriptgesteuert funktionieren.

Wie sollen wir am Besten vorgehen? Die Datei mit php zerlegen und dann zusammensetzen/importieren?

Oder kann ich mysql dazu bewegen die Daten zu importieren?

Vielen Dank für eure Hilfe im Voraus

User avatar
Janka
Posts: 3585
Joined: 11. Feb 2006 19:10

#2 Post by Janka »

Wenn die Datensätze nicht jeweils in einer einzigen Zeile sind, ist das keine vernünftig importierbare Datei. Ist der Grund, dass CR/LF-Zeichen in den Feldern vorhanden sind?

Zeig mal bitte eine Beispieldatei. Ein paar Zeilen reichen.

Janka
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.

r.b.
Posts: 11
Joined: 14. Oct 2007 11:41
Location: Soltau
Contact:

#3 Post by r.b. »

Die Daten werden wohl aus einer Access-Datenbank exportiert.

Folgendermaßen kann man das nachvollziehen:

a) Texteditor (kwrite)
b) einige Zeilen einfügen
c) openoffice calc starten
d) Zelle bearbeiten und über kopieren + einfügen die Daten der Textdatei einfügen
e) Tabelle als CSV exportieren

Wenn man sich jetzt die CSV-Datei anschaut, dann erscheinen die Daten aus b) untereinander.

Bei meiner CSV-Datei handelt es sich um 4 oder 5 Felder pro Datensatz.

User avatar
Janka
Posts: 3585
Joined: 11. Feb 2006 19:10

#4 Post by Janka »

r.b. wrote: Wenn man sich jetzt die CSV-Datei anschaut, dann erscheinen die Daten aus b) untereinander.
Hier nicht. Ooo.org 2.4.0.14.

Da die zu importierenden Daten auf MS-Windows erzeugt werden, enthalten sie vermutlich CR-LF als Zeilentrenner, wo Unix nur LF erwartet. Wandel das mit "dos2unix" zuvor um.

Janka
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.

Post Reply