Использование mysqlimport, где имя файла отличается от имени таблицы - PullRequest
12 голосов
/ 24 марта 2010

Я играл с mysqlimport и столкнулся с ограничением, когда имя файла должно совпадать с именем таблицы. Есть ли способ обойти это?

Я не могу переименовать файл, так как он используется другими процессами, и я не хочу копировать файл, так как их будет много, некоторые очень большие.

Я хочу использовать mysqlimport, а не LOAD INFILE.

РЕДАКТИРОВАТЬ: К сожалению, это должно работать на окнах, поэтому я не боюсь трюков с символическими ссылками.

Ответы [ 4 ]

12 голосов
/ 24 марта 2010

Вы не сказали, на какой платформе вы находитесь. В Unix вы можете создать символическую ссылку на файл:

ln -s filename.txt tablename.txt

Затем используйте это в команде mysqlimport.

Но mysqlimport - это просто интерфейс командной строки для LOAD INFILE, поэтому вы можете сделать это в командной строке:

mysql -e "load data infile 'filename' into table TBL_NAME" dbname
0 голосов
/ 07 августа 2015

mysqlimport использует имя файла для определения имени таблицы, в которую должны быть загружены данные. Программа делает это, удаляя любое расширение файла (последний период и все, что следует за ним); результат затем используется в качестве имени таблицы. Например, mysqlimport рассматривает файл с именем City.txt или City.dat как входные данные для загрузки в таблицу с именем City.

0 голосов
/ 24 марта 2010

Просто создайте символическую ссылку:

ln -s /tmp/real_file.txt /tmp/your_table_name.txt
0 голосов
/ 24 марта 2010

Вы пытались использовать команду alias, предполагая, что вы работаете в системе Linux?

...