2010-03-24 24 views
11

Ich habe mit mysqlimport gespielt und ich bin in der Einschränkung, wo der Dateiname der gleiche wie der Tabellenname sein muss. Gibt es einen Weg, um dies zu umgehen?Verwendung von mysqlimport wo der Dateiname ist anders als der Tabellenname

Ich kann die Datei nicht umbenennen, da sie von anderen Prozessen verwendet wird, und ich möchte die Datei nicht kopieren, da es viele von ihnen gibt, von denen einige sehr groß sind.

Ich möchte mysqlimport nicht laden INFILE verwenden.

EDIT: Leider muss dies auf Windows laufen, also keine Tricks mit symbolischen Links, fürchte ich.

+0

Warum möchten Sie nicht 'LOAD DATA INFILE' verwenden, wenn es dasselbe wie mysqlimport ist und Sie einen anderen Tabellennamen für eine gegebene Eingabedatei angeben können? –

+0

Ich benutze Java/JDBC und das Laden von LOAD INFILE scheint keinen Fehler zu erzeugen, wenn in einigen Situationen ein Problem beim Laden der Datei auftritt. Sie erhalten Warnungen angezeigt, wenn Sie es durch die Workbench ausführen, aber der JDBC-Treiber gibt mir nichts zurück. –

+0

mysqlimport sollte einen Parameter erlauben, einen anderen Tabellennamen zu setzen, das ist eine grundlegende Funktion ... – baptx

Antwort

0

Haben Sie versucht, den Befehl alias zu verwenden, vorausgesetzt, Sie befinden sich auf einem Linux-System?

-1

Erstellen Sie einfach einen symbolischen Link:

ln -s /tmp/real_file.txt /tmp/your_table_name.txt 
11

Sie hat nicht gesagt, auf welcher Plattform Sie sind. Unter Unix können Sie eine symbolische Verknüpfung zur Datei erstellen:

ln -s filename.txt tablename.txt 

Verwenden Sie dann das im Befehl mysqlimport.

Aber mysqlimport ist nur eine Befehlszeilenschnittstelle INFILE LOAD, so dass Sie auch diese auf der Kommandozeile tun könnte:

mysql -e "load data infile 'filename' into table TBL_NAME" dbname 
+0

Angst, ich bin auf Windows. –

+0

Sie können immer noch mysql auf Windows mit der gleichen Syntax verwenden .. Symlinking der Dateien ist ein bisschen eine komische Art, es zu tun. –

-1

mysqlimport den Dateinamen verwendet den Namen der Tabelle, um zu bestimmen, in welche die Daten sein sollten geladen. Das Programm erledigt dies, indem es jede Dateinamenerweiterung entfernt (die letzte Periode und alles, was darauf folgt); Das Ergebnis wird dann als Tabellenname verwendet. Zum Beispiel behandelt mysqlimport eine Datei namens City.txt oder City.dat als Eingabe, die in eine Tabelle namens City geladen werden soll.