将CSV导入和更新到MySQL

时间:2012-11-07 23:38:32

标签: php mysql csv

我有一个场景,客户端每天都有CSV文件的更新/插入,通常大约有30,000到50,000行。此CSV将包含新导入以及需要更新现有行的功能。

我使用的是PHP / MySQL。

目前,我必须检查CSV的每一行,并与数据库中的内容进行比较。

这显然需要很长时间。

如果数据库中没有任何内容,则直接导入本身就很快。

我已经考虑了临时表和连接,但不知道与更新相比,新行如何使用。

1 个答案:

答案 0 :(得分:0)

您可以选择将csv数据导入MySQL:

  • mysqlimport - 您可以在此处使用--ignore--replace选项。以下参考手册:
  

--replace--ignore选项控制输入行的处理   复制唯一键值上的现有行。如果你指定   --replace,新行替换具有相同唯一键值的现有行。如果指定--ignore,则输入复制的行   跳过唯一键值上的现有行。如果你没有指定   任一选项,找到重复键值时发生错误,   并忽略文本文件的其余部分。

  • 同样,在LOAD DATA INFILE中,您还可以指定选项IGNOREREPLACE:如果指定REPLACE,则输入行将替换现有行,如果指定IGNORE,则输入行将跳过复制唯一键值的现有行。

如果您使用LOAD DATA INFILE,MySQL数据库如何处理重复键也存在一些差异。但这仅适用于不使用IGNOREREPLACE选项的情况。