MySQL加载命令:数据文件是否有可用的通配符?

时间:2011-01-27 20:25:58

标签: mysql wildcard load-data-infile

我每天将以下文件转储到我们的一个在线目录中:

dat-part2-489359-43535-toward.txt

数字随机变化。

我有以下代码来尝试和加载文件:

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());

当然没有运气。最好的方法是什么?

2 个答案:

答案 0 :(得分:1)

假设这是一个预定作业,为什么不检查目录中是否有与您的文件名模板匹配的最新文件。将所述文件的名称存储在变量中,然后将该变量存入查询中。查看glob()

答案 1 :(得分:0)

我会通过shell脚本或windows cmd文件来实现。这假设您使用mysqldump或某些创建有效sql脚本的程序创建了该文件。

您可以在Windows中运行dir / B以获取文件目录。那么dir / B> input.txt然后使用Windows脚本来读取输入文件,对于每一行,使用mysql客户端管理文件。

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

自从我编写任何Windows脚本以来已经很长时间了,但这应该可以让您了解一种方法。