课程章节介绍
好,同学们,我们这节课来聊几个非常实用的数据操作,它们能帮你优雅地处理记录,而不用写一堆判断逻辑。我们一个一个说。
首先,我们来看 ,Upsert,。你可能会遇到这样的情况:你手里有一条记录,但你不知道它在数据库里是已经存在,还是全新的。如果不存在,你想创建;如果存在,你想更新。这时候 Upsert 就派上用场了,它用一个指定的字段来决定到底是插入还是更新。比如,你可以用外部 ID 来匹配,如果有相同外部 ID 的记录,就更新;如果没有,就新建。这样你就不必先查询再判断,一行代码就搞定了。
接下来是 ,Merge,,合并。它允许你把最多三个重复的记录合并到一个主记录里去。关键点在于,主记录上的字段值,不管有没有数据,都会保留;而其他被合并的记录,只有主记录对应字段为空时,它们的值才会补上去。所以主记录上已经填好的信息不会被覆盖。这个操作很适合清理重复数据。
然后是 ,Delete, 和 ,Undelete,。当你调用 Delete,记录并不会立即从数据库消失,而是先被移到回收站。这个删除操作还会连带删除那些与之有主从关系的子记录——这叫级联删除。而如果删错了,你可以用 Undelete 把它恢复回来。恢复时,记录本身回来,同时那些单纯的查找关系也会自动恢复,这很方便。
最后,,ConvertLead,。这是专门用来处理潜在客户转换的。在实际业务中,一个线索经过跟进,可能变成了真正的客户,我们需要把它转换为客户、联系人,甚至还可以生成一个商机。在 Apex 里,你不能用普通的 DML 语句直接做这件事,而是必须通过 Database 类的 convertLead() 方法。这个方法接受 LeadConvert 对象,返回转换结果。记住,它不是写在 TLR 声明里的那种操作,必须依靠这个方法才能完成。
好了,整个 Slide 的核心就是:Upsert 帮你智能决策插入还是更新;Merge 合并并保留主记录优先;Delete 是软删除且级联;Undelete 恢复关系;ConvertLead 用专门方法生成客户等。理解这些操作的特性,会让你的代码简洁又健壮。
我们休息一下,下张幻灯片继续。
关键词
Apex
Salesforce
Developer Guide