14

I've been playing with mysqlimport and I've run into the restriction where the filename has to be the same as the table name. Is there any way to work round this?

I can't rename the file as it is used by other processes and I don't want to copy the file as there will be many of them, some being very large.

I want to use mysqlimport not LOAD INFILE.

EDIT: Unfortunately this needs to run on windows so no tricks with symbolic links I'm afraid.

Mike Q
  • 21,350
  • 19
  • 80
  • 124
  • Why don't you want to use `LOAD DATA INFILE`, when it is the same as what mysqlimport does and it allows you to specify a different table name for a given input file? – a'r Mar 24 '10 at 14:46
  • I'm using Java/JDBC and invoking the LOAD INFILE doesn't seem to produce any error when there is a problem loading the file in some situations. You get warnings displayed if you run it through the Workbench but the JDBC driver gives me nothing back. – Mike Q Mar 24 '10 at 18:03
  • 1
    mysqlimport should allow a parameter to set a different table name, this is a basic feature... – baptx Oct 18 '17 at 09:33

4 Answers4

13

You didn't say what platform you are on. On unix you can create a symbolic link to the file:

ln -s filename.txt tablename.txt

Then use that in the mysqlimport command.

But mysqlimport is just a command line interface to LOAD INFILE so you could also do this on the command line:

mysql -e "load data infile 'filename' into table TBL_NAME" dbname
Craig
  • 4,655
  • 18
  • 20
  • you can still use mysql on windows with the same syntax.. symlinking the files is a bit of a weird way of doing it. – John Hunt Apr 16 '15 at 14:11
0

Have you tried using the alias command, assuming you are on a Linux system?

Chris McCall
  • 10,043
  • 8
  • 46
  • 79
0

Just create a symbolic link:

ln -s /tmp/real_file.txt /tmp/your_table_name.txt
Ike Walker
  • 59,827
  • 13
  • 100
  • 104
-1

mysqlimport uses the filename to determine the name of the table into which the data should be loaded. The program does this by stripping off any filename extension (the last period and anything following it); the result is then used as the table name. For example, mysqlimport treats a file named City.txt or City.dat as input to be loaded into a table named City.