问题:从我的仓库接收到的CSV数据有超过2个million+编号,我需要将其导入多个column表的单个列中。我需要弄清楚如何将CSV文件导入MySQL,但是还有一些棘手的问题要克服。经过一番研究,我还没有找到解决办法.
列可以按如下方式排列:(数据库中尚不存在此数据)
ID : serialCode x somethingID
2 million+序列号以下面的示例格式提供给我。每个数字都是一个单独的serialCode,用逗号分隔,一行中有4个serialCodes。
7121316,8216697,5146909,5191409,
8125250,6217542,5144896,8198066,
3125654,9217139,2146880,1192013我需要做的是将这些串行代码插入到MySQL数据库中,特别是只插入serialCode列中。ID将自动递增,somethingID将在稍后的日期分配。
发布于 2011-05-04 18:09:55
MySQL的LOAD DATA INFILE命令将是您的朋友:http://dev.mysql.com/doc/refman/5.5/en/load-data.html
首先创建表,然后我认为下面的命令应该可以工作:
LOAD DATA INFILE "/path/to/file" INTO TABLE myTable LINES TERMINATED BY "," (serialCode) SET ID=NULL;发布于 2011-05-04 18:23:31
为此您可以使用LOAD DATA INFILE。棘手的部分是,您的行结束符有时是逗号,但有时它是逗号和行中断。
解决这个问题的最简单方法是将值加载到用户变量中,然后在表中设置实际列变量时从用户变量中删除行中断。
像这样的东西应该对你有用:
LOAD DATA INFILE '/tmp/your_file.csv'
INTO TABLE your_table
LINES TERMINATED BY ','
(@serialCode)
SET id = NULL,
serialCode = REPLACE(@serialCode,'\n','');发布于 2012-08-07 07:15:13
如果mysql工具因任何原因而失败(内存限制、编码问题、无效csv),则始终可以选择用首选编程语言编写脚本来解析csv并将其存储到DB中。大多数编程语言都具有csv解析能力。
https://stackoverflow.com/questions/5887906
复制相似问题