You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Salesforce中对重复外部ID的记录执行DataLoader Upsert?

问题分析

你遇到的报错核心原因是:ExternalText字段虽标记为外部ID并勾选了唯一标识,但当前Org中已存在2条Account记录的ExternalText值均为E1,Upsert操作需要通过外部ID匹配唯一记录,重复值导致系统无法确定要更新哪一条,因此抛出错误。

实现目标的步骤

要让两条记录的Description依次更新最终为Description2,可按以下操作:

1. 先清理重复的外部ID值(必须步骤)

因为外部ID的唯一标识属性要求该字段值全局唯一,现有重复数据违反了这个约束,必须先修正:

  • 导出所有ExternalText值为E1的Account记录(用DataLoader或报表导出,包含Id和ExternalText字段)
  • 手动修改其中一条记录的ExternalText值为其他唯一值(比如E1_1),确保该字段无重复

2. 使用DataLoader执行Upsert更新剩余的E1记录

修正重复后,按以下步骤操作:

  • 准备CSV文件,只保留一行E1的记录(因为现在只有一条E1的Account了):
    ExternalText,Description
    E1,Description 2
    
  • 用DataLoader执行Upsert,选择Account对象,指定外部ID字段为ExternalText
  • 执行后,这条E1的Account记录的Description会被更新为Description 2

3. 若需同时更新原两条记录到同一Description值

如果你的真实需求是让原来的两条记录最终Description都是Description2,不需要区分顺序,可直接:

  • 导出这两条记录的Id字段
  • 准备包含Id和Description的CSV:
    Id,Description
    <id1>,Description 2
    <id2>,Description 2
    
  • 用DataLoader执行Update操作(而非Upsert),通过Id精准匹配并更新两条记录
关键注意事项
  • 外部ID字段勾选“作为外部系统唯一标识”后,系统会强制该字段值唯一,后续插入/ Upsert时不能再出现重复值,否则会报错
  • Upsert的核心逻辑是“匹配到唯一记录则更新,未匹配则插入”,因此必须保证用于匹配的外部ID值在Org中唯一

内容的提问来源于stack exchange,提问作者Georgia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 05:30:54