2017-02-16 92 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 

然後嘗試運行該批處理文件