开发者

MySQL load command: is there a wildcard available for the datafile?

开发者 https://www.devze.com 2023-02-07 07:15 出处:网络
I have the following file dumped daily into one 开发者_如何学编程of our online directories: dat-part2-489359-43535-toward.txt

I have the following file dumped daily into one 开发者_如何学编程of our online directories:

dat-part2-489359-43535-toward.txt

The numbers change each day randomly.

I have the following code to try and LOAD the file:

mysql_query("LOAD DATA LOCAL INFILE 'dat-part2-%-toward.txt' 
          REPLACE INTO TABLE my_table
          FIELDS TERMINATED BY ',' ENCLOSED BY ''
          LINES TERMINATED BY '\r\n'
          IGNORE 1 LINES") or die(mysql_error());

And of course no luck. What's the best way to do this?


assuming this is a scheduled job, why not check the directory for the most recent file that matches your filename template. Store the name of said file in a variable and then sub the variable into your query. Check out glob()


I would do it via a shell script or windows cmd file. This assumes you created the file with mysqldump or some program that creates a valid sql script.

You can run dir /B in windows commend to get a directory of files. So do a dir /B > input.txt then use Windows scripting to read the input file and for each line, pipe the file in using the mysql client.

@ echo off  set infile= %%1
for /f "eol= tokens=*
delims= usebackq" %%i in  (%infile%)
do (  mysql -u userName --password=pwd < %%i  )

It's been a long time since I wrote any windows scripts, but that should give you an idea of an approach.

0

精彩评论

暂无评论...
验证码 换一张
取 消