CSV zu MySQL. Datensätze werden nur teilweise übernommen.

suntrop

Erfahrenes Mitglied
Hallo,

ich habe eine CSV-Datei und will diese mit PHPMyAdmin in eine MySQL Datenbank einlesen.

Die ersten zwei Klippen habe ich schon umschifft, aber jetzt komme ich einfach nicht weiter.
Die CSV enthält 436 Datensätze
id;begriff;text
Aber beim Import in MySQL werden immer nur 127 übernommen! Das Kuriose ist, von 1 bis 126 stimmen alle Datensätze überein. Aber 127 in MySQL ist der letzte Datensatz aus der CSV. Alles dazwischen fehlt in der DB.

Ich sehe keine Besonderheiten hier (CSV-Datei):
Code:
125;FCP;Fonds Commun de Placement. Luxemburgische Rechtsform eines Fonds.
126;Federführende Bank;Als federführende Bank bezeichnet man das Kreditinstitut, das bei einer Erstausgabe von Wertpapieren das Bankenkonsortium anführt.
127;Feindliche Übernahme;Firmenübernahme ohne Zustimmung des zu übernehmenden Unternehmens. Dabei wird versucht, die Stimmenmehrheit zu erlangen, indem man genügend Aktienanteile des zu übernehmenden Unternehmens von den Aktionären erwirbt. (z.B. Mannesmann/Vodafone).
128;Fest;Bezeichnung für eine leicht steigende Tendenz an der Börse (Kursnotierungen steigen zwischen einem und bis zu drei Prozent) Gegenstück: schwach.
Wie gesagt; 126 ist korrekt in der DB, aber dann, statt der "Feindlichen Übernahme" finde ich an 127. und letzter Stelle der DB folgendes:
Code:
436;Sterling Ratio;Die Sterling Ratio ist eine weitere gängige Kennziffer zur Beurteilung der Renditequalität, auch hier wird die Analyse von Rendite und Risiko in einer einzigen Größe kombiniert.<BR />Die Sterling Ratio errechnet sich aus dem Verhältnis zwischen der anualisierten historischen Durchschnittsrendite und dem maximalen Drawdown. <BR />Vom Prinzip her ist die Sterling Ratio der Sharp Ratio ähnlich, doch im Gegensatz zu dieser wird die Rendite hier nicht zur Standardabweichung in Beziehung gesetzt, sondern zum maximalen Kursverlust der betrachteten Periode.
Die ID ist in der DB 127.

Woran kann das liegen, dass die Datensätze 127 bis 435 aus der CSV-Datei nicht übernommen werden?

Grüße
suntrop


phpMyAdmin 2.6.4-pl4
LOAD-Methode = DATA LOCAL
 
Das einzige, was mir jetzt spontan auffällt, ist, dass ab 127 auch Umlaute verwendet werden - was hast du denn für ein Zeichenformat für deine Tabelle eingestellt?

Werden die Datensätze wirklich nicht eingelesen - oder hast du nur den Eindruck?
(Eine Datenbank muss die Ausgabe nicht sortieren!)
 
Umlaute kommen von oben bis unten vor. Die Originaldatei hatte sogar viele &auml; Vorallem das ; am Ende der Entities kommt gut in CSV-Dateien die durch ; getrennt werden :-)
Das ist lies sich schnell über Suchen und Ersetzten korrigieren.

Zuvor war es wohl iso-8859-1, das gab allerdings Probleme mit den Sonderzeichen. Und da ich ohnehin nur mit utf-8 arbeite ist die CSV jetzt auch utf-8 kodiert (Sonderzeichen stehen korrekt in der DB).

Was genau meinst du mit Zeichenformat? Die Kollation? Die steht auf utf8_general_ci.
Und der MySQL-Zeichensatz ist UTF-8 Unicode

Die Datensätze werden wirklich nicht gespeichert. Es sind nur 127 statt 436.
 
Zurück