是否可以自动执行csv加载?

时间:2013-11-27 16:03:42

标签: mysql batch-file csv

我需要编写一个批处理程序来加载MySQL中的csv文件。我知道LOAD DATA INFILE语法通过使用CSV文件使批量插入成为可能。

在批处理中,我还必须按顺序从命令行运行文件浏览器;我还要求使用表名来占位表名。换句话说,我想写一个通用脚本,它接受用户输入的表名,并从命令行询问该文件。

因此,问题是,加载程序的自动化是否可能?对不起在搜索时在这个顶部找不到多少。

我希望我的问题清晰而连贯。

2 个答案:

答案 0 :(得分:1)

检查出来:

Pass parameter to MySQL script command line

使用shell脚本参数替换表名和文件名,记得在更换字符串之前检查它们的安全性。

答案 1 :(得分:1)

结帐mysqlimport。它是LOAD DATA INFILE语句的命令行界面。

限制是输入csv文件的名称必须与要导入数据的表的名称相匹配。手册说明:

  

对于在命令行上命名的每个文本文件,mysqlimport从文件名中删除任何扩展名,并使用结果确定要导入文件内容的表的名称。例如,名为patient.txtpatient.textpatient的文件都将导入名为patient的表中。

但您可以通过以下两种方式解决这一限制:

  • 重命名脚本中的输入文件,以匹配目标表名称。
  • 导入到与文件名匹配的新表,然后RENAME TABLE