定期将.csv转移到数据库

时间:2015-06-24 04:24:22

标签: mysql csv

我正在开发一个程序,它会定期从.csv文件中读取数据并将其导入我的数据库。 csv是来自另一台服务器上的数据库的副本,因此当我上传到新服务器时,表结构会有所不同。

我不确定的是每晚进行此操作的最佳方法,并希望自动化该过程。有什么建议? 数据库是Apache服务器上的MySQL

2 个答案:

答案 0 :(得分:0)

我认为最好的解决方案是创建一个PHP脚本来操作csv数据,并将文件格式与数据库中的表相匹配。之后,您可以设置一个cron作业(linux)或计划任务(windows),以便在您所需的时间和递归时自动运行脚本。希望这会对你有所帮助。

答案 1 :(得分:0)

考虑在定时脚本上使用LOAD DATA INFILE查询,使用PHP,Python或其他语言上传到临时表:

LOAD DATA INFILE 'filename.csv' 
INTO TABLE tempname
FIELDS TERMINATED BY ',' 
OPTIONALLY ENCLOSED BY '"' 
LINES TERMINATED BY '\r\n';

然后运行追加查询,将不同的结构化临时表数据迁移到最终表中。

INSERT INTO finaltable (Col1, Col2, Col3,...)
SELECT [Col1], [Col2], [Col3], ... FROM tempname