2009-08-13 18 views
0

Ich habe Datei in folgendem Format:Importieren durch Leerzeichen getrennte Daten in MySQL

`e00` `e01` `e02` `e03` 
`e10` `e11` `e12` `e13 

Der Versuch, die Daten mit

LOAD DATA INFILE 'file' INTO TABLE 'foo' FIELDS TERMINATED BY ' ' ENCLOSED BY '`' 

scheint nur zu importieren, um die ersten drei Felder jeder Zeile zu erhalten. Gibt es eine Möglichkeit, die Daten zu laden, ohne das Dateiformat zu ändern?

+0

Sie alle Warnungen erhalten Sie? – idrosid

+0

Es gibt keine Anführungszeichen um den Tabellennamen herum, zumindest nicht in der neuesten Dokumentation und durch den Fehler, den ich beim Ausführen des Befehls auf meinem Computer bekommen habe. (Nehmen wir an, Sie haben den letzten Backtick nach e13 vergessen). Könnten Sie auch die 'show create table foo'-Befehlsausgabe bereitstellen? Maaaybe auch 'SELECT * FROM foo' nach den' LOAD DATA' ?. Ich denke du hast keine 4 Spalten auf deinem Tisch. Nur fragen, weil ich deine Situation nicht reproduzieren konnte, habe ich 2 Zeilen mit vier Spalten und jedem Wert darauf. – inerte

+0

Was ist das Zeilentrennzeichen (Unix \ n oder Dos \ r \ n)? Vielleicht sollten Sie Zeilen, die mit 'etwas passend' enden, einbeziehen. –

Antwort

-1

Lassen Sie uns alle in die Weg-zurück-Maschine springen, um eine 5-jährige Frage zu beantworten!

Die Tatsache, dass das letzte Element nicht geladen wird, ist ein großer Hinweis. Nach the manual:

Wenn BY BEENDET LINES eine leere Zeichenfolge und FIELDS BY nicht leer ist, beendet ist, werden Linien mit FIELDS BY BEENDET beendet.

Also, es sucht nach einem abschließenden Leerzeichen am Ende der Zeile.

Sie könnten ein Leerzeichen am Ende jeder Zeile in der Eingabedatei hinzufügen oder versuchen LINES TERMINATED BY '\n'

Verwandte Themen