Import einer CSV Datei in MySQL

Software besorgen und anwenden
Antworten
Nachricht
Autor
r.b.
Beiträge: 11
Registriert: 14. Okt 2007 11:41
Wohnort: Soltau
Kontaktdaten:

Import einer CSV Datei in MySQL

#1 Beitrag von r.b. » 10. Dez 2008 10:44

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

Benutzeravatar
Janka
Beiträge: 3581
Registriert: 11. Feb 2006 19:10

#2 Beitrag von Janka » 10. Dez 2008 19:23

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.
Beiträge: 11
Registriert: 14. Okt 2007 11:41
Wohnort: Soltau
Kontaktdaten:

#3 Beitrag von r.b. » 13. Dez 2008 7:52

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.

Benutzeravatar
Janka
Beiträge: 3581
Registriert: 11. Feb 2006 19:10

#4 Beitrag von Janka » 13. Dez 2008 10:40

r.b. hat geschrieben: 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.

Antworten