2010-03-24 29 views
11

Grałem z mysqlimport i natknąłem się na ograniczenie, gdzie nazwa pliku musi być taka sama jak nazwa tabeli. Czy istnieje sposób obejścia tego?Używanie mysqlimport gdzie nazwa pliku jest inna niż nazwa tabeli

Nie mogę zmienić nazwy pliku, ponieważ jest używany przez inne procesy i nie chcę kopiować pliku, ponieważ będzie ich wiele, a niektóre są bardzo duże.

Chcę użyć mysqlimport nie ZAINSTALOWAĆ INFILE.

EDYCJA: Niestety to musi biec w oknach, więc nie ma sztuczek z dowiązaniami symbolicznymi, obawiam się.

+0

Dlaczego nie chcesz używać funkcji "LOAD DATA INFILE", gdy jest ona taka sama jak funkcja mysqlimport i pozwala na określenie innej nazwy tabeli dla danego pliku wejściowego? –

+0

Używam Java/JDBC i wywołanie funkcji LOAD INFILE nie powoduje żadnych błędów w przypadku problemów z ładowaniem pliku w niektórych sytuacjach. Otrzymasz ostrzeżenia wyświetlane, jeśli uruchomisz go w Workbench, ale sterownik JDBC nic mi nie daje. –

+0

mysqlimport powinien pozwolić parametrowi ustawić inną nazwę tabeli, jest to podstawowa funkcja ... – baptx

Odpowiedz

0

Czy próbowałeś użyć polecenia alias, zakładając, że jesteś w systemie Linux?

-1

Wystarczy utworzyć link symboliczny:

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

nie powiedziałeś co platforma jesteś. Na unixie możesz utworzyć dowiązanie symboliczne do pliku:

ln -s filename.txt tablename.txt 

Następnie użyj tego w poleceniu mysqlimport.

Ale mysqlimport jest tylko interfejs wiersza polecenia LOAD plik_we więc można też to zrobić w wierszu poleceń:

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

Boję się, że jestem w systemie Windows. –

+0

nadal możesz używać mysql w oknach o tej samej składni. Dowiązanie tych plików jest nieco dziwaczne. –

-1

mysqlimport wykorzystuje nazwę pliku, aby określić nazwę tabeli, do której dane powinny być załadowany. Program robi to, usuwając dowolne rozszerzenie pliku (ostatni okres i wszystko, co następuje po nim); wynik jest następnie używany jako nazwa tabeli. Na przykład mysqlimport traktuje plik o nazwie City.txt lub City.dat jako dane wejściowe do załadowania do tabeli o nazwie Miasto.