Mysql 加载数据填充和重复密钥更新

Mysql 加载数据填充和重复密钥更新,mysql,Mysql,使用LOAD DATA INFILE时,是否有办法获得与常规INSERT语句的重复密钥更新相同的功能 我想做的是:对于文件的每一行,如果该行不存在,则插入一个新行,否则将更新所选字段 我的表有5列:A、B、C、D和E。A是主键。有时,我必须插入包含所有值的新行,但有时我必须只更新B和C,例如。但是,关键是我想在同一个文件中重新组合所有插入或更新 谢谢如果要插入/更新某些字段,则应将数据加载到其他表中,然后使用insert、update或insert…SELECT+ON DUPLICATE KEY

使用LOAD DATA INFILE时,是否有办法获得与常规INSERT语句的重复密钥更新相同的功能

我想做的是:对于文件的每一行,如果该行不存在,则插入一个新行,否则将更新所选字段

我的表有5列:A、B、C、D和E。A是主键。有时,我必须插入包含所有值的新行,但有时我必须只更新B和C,例如。但是,关键是我想在同一个文件中重新组合所有插入或更新


谢谢

如果要插入/更新某些字段,则应将数据加载到其他表中,然后使用insert、update或insert…SELECT+ON DUPLICATE KEY update语句复制/修改数据;否则,其他字段将设置为空

在这种情况下,“加载数据填充”中的“替换”选项对您没有帮助



此外,您还可以使用dbForge Studio for MySQL(免费快速版)中的工具(CSV格式),只需选择附加/更新导入模式,并在数据导入向导中指定字段映射。

请给出目标表的结构好吗?此外,还有一些不清楚的地方。如果行已经存在,为什么要更新它?不,不能。load语句用于直接的“整个文件中的slurp”。如果加载的行与现有记录存在主键/唯一键冲突,您唯一的选择是使用“replace”参数来执行完整记录交换:我已编辑了问题。关于现有行,因为我想更新它们的一些字段,但不是全部。@MarcB替换记录对我没有帮助,因为我会丢失我不想更新的字段中的信息。然后不要使用load Infle查询-它不能做你想做的事。这取决于数据大小和索引。你应该测试一下答案。