TXT-Datei mit LOAD in MySQL einlesen - File not found?

wal

Erfahrenes Mitglied
Hallo,

ich versuche an einem Windowsrechner per Shell eine TXT Datei (aus Excel erstellt) in eine MySQL Tabelle einzulesen.

Dazu gebe ich in der Shell folgendes ein:
Code:
myqsl> LOAD DATA INFILE 'babbel.txt' INTO TABLE testtxt;

Leider erhalte ich immer die Fehlermeldung:
ERROR 1105: File '.\verzeichnisnamen\babble.txt' not found. (errorcode: 2)
:eek:

Nun habe ich schon diverse Pfadangaben in ... 'babble.txt' benutzt, aber ich erhalte immer die Fehlermeldung file not found. :mad:

Über eine kurze Hilfe oder einen Tipp wäre ich sehr dankbar.

Vielen Dank im voraus.
 
Ich kann mich jetzt täuschen (vor allem, weil ich das schon lange nicht mehr gemacht hab), aber sollte das nicht so aussehn?

Code:
myqsl> LOAD DATA INFILE 'c://verzeichnis//babbel.txt' INTO TABLE testtxt;

mfg
Nitro

PS: Bzw. kann es sein, dass du statt Slashes Backslashes verwenden musst.
 
Hi nitronic,

danke für die schnelle Antwort und wie gut das du dich zurückerinnern konntest. Du hattest recht. :)

Jetzt erhalte ich nach 30 Einträgen eine Fehlermeldung:
Error 1064: Doppelter Eintrag für '30' Schlüssel 1

Aber das liegt wahrscheinlich an meiner TXT-Datei, die durch die erste Spalte verschoben wird.

Eine Frage habe ich aber noch, ich habe in der Tabelle einen Primärschlüssel - Feld ID und lasse in der ersten Spalte mit "auto_increment" füllen. Nun wird versucht die Tabelle ab erste Spalte vom Script gefüllt zu werden, was aber keinen Sinn macht, da die erste Spalte ja automatisch gefüllt wird.

Kann ich beim LOAD noch mitgeben, das erst ab Spalte zwei die Tabelle gefüllt werden soll?

Vielen Dank schon mal vorab.
 
Es ist keine Felderliste angegeben, daher erwartet LOAD DATA INFILE, dass die Eingabefelder ein Feld für jede Tabellenspalte enthalten. Die Vorgabewerte für FIELDS und LINES-Werte werden benutzt.

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,...);

sieh mal hier:
LOAD-Befehl
 
Zurück