2017-02-16 99 views
0

我有1000个.txt文件,我想将它们放在同一个SQL表中。所有这些文件都具有完全相同的信息:我使用的DMP每小时创建一个新的.txt文件...每个创建的新文件都有一个“标题”,其想法是我只想在最后有一个标题。所以这是我找到我的目录文件夹千小时例如后:在MySQL中加载多个.txt文件

nameoffile1.txt 
nameoffile2.txt 
nameoffile3.txt 
... 
nameoffile1000.txt 

我如何可以插入我的表中这个文件,而无需编写1000次:

LOAD DATA LOCAL INFILE 'Users/xxxx/Desktop/Folder/nameoffile1.txt' 
LOAD DATA LOCAL INFILE 'Users/xxxx/Desktop/Folder/nameoffile2.txt' 

...和最后只保留1个标题?

非常感谢您的帮助:)

NB1:我已经研究了前面的主题,但我无法找到一个MySQL的答案。
NB2:我知道如何与终端做到这一点,但我想知道如何通过Mysql来完成。

回答

0

如果您的所有文本文件都具有相同的格式。首先在你的数据库上创建一个合适的表,然后创建一个upload.bat文件,把它和所有的文本文件放在C:/ import(或者C:盘中没有空格的文件夹名)。所有文本文件的名称都不应该有空格。

echo off 
setlocal enabledelayedexpansion 

FOR %%f IN ("*.csv") DO (
    set old=%%~dpnxf 
    set new=!old:\=\\! 
    "C:\Program Files\MySQL\MySQL Server 5.7\bin\mysql" -e "load data local infile '"!new!"' IGNORE into table YOUR_TABLE FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"""' LINES TERMINATED BY '\n' IGNORE 1 ROWS " -h 127.0.0.1 -u USERNAME -pPASSWORD YOUR_SCHEMA 
    echo UPLOAD %%~nxf DONE 
) 

pause 

然后尝试运行该批处理文件