2011-01-24 35 views
0

我有一個mysql數據庫,其表的列名與我收到的csv文件的列名相同。我曾經使用Windows批處理文件上傳到MySQL。如何在linux中創建批量mysql上傳腳本

@echo off 
echo TRUNCATE TABLE `alarms`; > importalarm.sql 
echo Creating list of MySQL import commands 
for %%s in (*.csv) do 
    echo LOAD DATA LOCAL INFILE '%%s' INTO TABLE `alarms` 
     FIELDS TERMINATED BY ',' ENCLOSED BY ' ' 
     ESCAPED BY '/'LINES TERMINATED BY '\r\n' IGNORE 1 LINES; >> importcsv.sql; 
echo mysql -u root -p uninetscan < importalarm.sql 

我需要把它變成一個Linux腳本。

任何想法。

+0

請問你能格式化你的腳本嗎? – 2011-01-24 16:25:59

回答

1

這裏是你會怎麼做在Linux上類似的事情:

#!/bin/bash 
echo 'TRUNCATE TABLE `alarms`;' > importalarm.sql 
echo "Creating list of MySQL import commands" 
for f in *.csv; do 
    echo "LOAD DATA LOCAL INFILE '$f' INTO TABLE \`alarms\` FILEDS TERMINATED BY ',' ENCLOSED BY ' ' ESCAPED BY '/' LINES TERMINATED BY '\r\n' IGNORE 1 LINES;" >> importcsv.sql; 
done 
echo 'mysql -u root -p uninetscan < importalarms.sql' 

我注意到,您將輸出發送到2個文件(importalarm.sql和importcsv.sql),不知道這是否是你想要的,但它很容易改變。 此外,最後一行只是迴應命令,而不是實際執行它。如果你想執行它,只需刪除回聲和引號。

+0

抱歉拼寫錯誤。 – 2011-01-24 17:08:52