如何在linux中创建批量mysql上传脚本

时间:2011-01-24 16:23:36

标签: mysql linux shell csv batch-processing

我有一个mysql数据库,其表格与我收到的csv文件具有相同的列名。我以前使用windows批处理文件上传到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脚本。

任何想法。

1 个答案:

答案 0 :(得分: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),不确定它是否是你想要的,但它很容易改变。 另外,最后一行只是回显命令,而不是实际执行它。如果要执行它,只需删除回显和引号。