MYSQL:加载数据Infile但是如果找到相同的密钥则更新?

时间:2011-04-19 23:31:20

标签: mysql

我有会员表。一半的数据/字段通过在线CMS填充。

但是对于成员的核心联系人详细信息字段,它们来自从桌面数据库导出的CSV。

我希望能够上传此CSV并使用LOAD DATA命令更新成员联系人详细信息字段(匹配id),但不会触及/删除其他字段。

有没有办法做到这一点,或者我必须循环遍历CSV和UPDATE的每一行......(如果是这样的话,有关最佳方法的任何提示吗?)

1 个答案:

答案 0 :(得分:1)

Load Data Infile命令支持REPLACE关键字。这可能就是你要找的东西。从手册:

  

REPLACE与INSERT完全一样,   除非表中有一个旧行   与a的新行具有相同的值   PRIMARY KEY或UNIQUE索引,旧的   在新行之前删除行   插入

“加载数据Infile”命令还有一些选项,您可以在其中指定要更新的列,因此您可以上载数据,仅指定要更新的列。