Apex和SOQL - 根据唯一字符串字段执行upsert
创始人
2024-11-10 04:30:02
0

在Apex中使用SOQL执行upsert操作,需要按照以下步骤进行操作:

  1. 首先,创建一个唯一字符串字段的目标对象。例如,假设我们要将数据插入到名为"Account"的对象中,并且有一个唯一字符串字段"ExternalId__c"。

  2. 创建一个包含要upsert的记录的列表。每个记录必须包含一个唯一字符串字段的值。

List accountsToUpsert = new List();
accountsToUpsert.add(new Account(ExternalId__c = 'ABC123', Name = 'Test Account 1'));
accountsToUpsert.add(new Account(ExternalId__c = 'DEF456', Name = 'Test Account 2'));
  1. 使用SOQL查询来查找已存在的记录。在查询中使用"IN"关键字,并将唯一字符串字段的值作为参数传递。
List existingAccounts = [SELECT Id, ExternalId__c FROM Account WHERE ExternalId__c IN :accountsToUpsert];
  1. 创建一个Map来存储已存在记录的唯一字符串字段值和对应的记录Id。这将帮助我们在upsert操作中更新现有记录。
Map existingAccountsMap = new Map();
for (Account acc : existingAccounts) {
    existingAccountsMap.put(acc.ExternalId__c, acc.Id);
}
  1. 创建一个新的列表来存储要插入和更新的记录。
List accountsToInsert = new List();
List accountsToUpdate = new List();

for (Account acc : accountsToUpsert) {
    if (existingAccountsMap.containsKey(acc.ExternalId__c)) {
        acc.Id = existingAccountsMap.get(acc.ExternalId__c);
        accountsToUpdate.add(acc);
    } else {
        accountsToInsert.add(acc);
    }
}
  1. 使用upsert关键字执行upsert操作。
upsert accountsToInsert ExternalId__c;
upsert accountsToUpdate ExternalId__c;

上述代码示例演示了如何使用SOQL查询和upsert操作根据唯一字符串字段执行upsert操作。请根据自己的需求进行相应的调整。

相关内容

热门资讯

透视脚本!wepoker有辅助... 透视脚本!wepoker有辅助吗(透视)其实真的是有挂(详细辅助教你教程)1、超多福利:超高返利,海...
盘点一款!wepoker有没有... 1、盘点一款!wepoker有没有机器人,wepoker透视是真的吗,透明挂教程(有挂攻略);详细教...
透视挂!hhpoker透视工具... 透视挂!hhpoker透视工具(透视)确实真的是有挂(详细辅助存在挂教程);1、ai辅助优化,发牌逻...
玩家必看科普!hhpoker怎... 1、玩家必看科普!hhpoker怎么破解,aapoker ai插件,2025新版(有挂神器);详细教...
透视科技!hhpoker德州作... 透视科技!hhpoker德州作弊(透视)原来有挂(详细辅助2025新版教程);所有人都在同一条线上,...
科技新动态!wepoker怎么... 科技新动态!wepoker怎么开辅助,wpk显示有作弊,高科技教程(有挂透明),支持语音通讯、好友开...
透视辅助!约局吧德州真的有透视... 透视辅助!约局吧德州真的有透视挂吗(透视)其实真的是有挂(详细辅助微扑克教程)1、进入游戏-大厅左侧...
推荐一款!wepoker怎么设... 推荐一款!wepoker怎么设置盖牌,大菠萝辅助器,揭秘攻略(有挂辅助);支持多人共享记分板与复盘,...
透视攻略!wejoker内置辅... 透视攻略!wejoker内置辅助(透视)确实存在有挂(详细辅助AI教程)1、不需要AI权限,帮助你快...
一分钟带你了解!htx矩阵we... 一分钟带你了解!htx矩阵wepoker辅助,cloudpoker外挂,曝光教程(有挂神器)1、玩家...