Salesforce入门教程(中文)-004 DML&数据库方法

这篇博客详细介绍了Salesforce中的数据操作语言(DML)及其应用,包括如何使用DML进行插入、更新、合并、删除和恢复记录。文章通过实例展示了如何使用Apex DML管理Salesforce记录,强调了DML语句的使用和批量操作的重要性。同时,还提到了upsert和merge等Salesforce特有的DML操作,并解释了如何处理相关记录和事务管理。
摘要由CSDN通过智能技术生成

1.使用DML
使用数据操作语言(缩写为DML)在Salesforce中创建和修改记录。
DML通过提供插入、更新、合并、删除和恢复记录的简单语句,提供了一种管理记录的简单方法。

由于Apex是一种以数据为中心的语言,并且保存在Lightning平台上,因此它可以直接访问Salesforce中的数据。
与其他需要额外设置才能连接到数据源的编程语言不同,使用Apex DML可以轻松地管理记录!
通过调用DML语句,您可以快速对Salesforce记录执行操作。

此示例将Acme帐户添加到Salesforce。
首先创建一个account sObject,然后将其作为参数传递给insert语句,insert语句将记录保存在Salesforce中。
// Create the account sObject 
Account acct = new Account(Name='Acme', Phone='(415)555-1212', NumberOfEmployees=100);
// Insert the account by using DML
insert acct;

2.DML语句

以下DML语句可用。
insert
update
upsert
delete
undelete
merge

每个DML语句都接受单个sObject或sObject列表(或数组)。
对sObject列表进行操作是处理记录的一种更有效的方法。

upsert和merge语句是Salesforce特有的,非常方便。
upsert DML操作在单个语句中创建新记录并更新sObject记录,使用指定字段确定现有对象的存在,如果未指定字段,则使用ID字段。
merge语句将最多三条相同sObject类型的记录合并到其中一条记录中,删除其他记录,并重新设置任何相关记录的父级。

自动分配给新记录的ID字段
插入记录时,系统为每个记录分配一个ID。
除了在数据库中持久化ID值之外,ID值还自动填充到在DML调用中用作参数的sObject变量上。

此示例显示如何获取与插入帐户对应的sObject上的ID。
// Create the account sObject 
Account acct = new Account(Name='Acme', Phone='(415)555-1212', NumberOfEmployees=100);
// Insert the account by using DML
insert acct;
// Get the new ID on the inserted sObject argument
ID acctID = acct.Id;
// Display this ID in the debug log
System.debug('ID = ' + acctID);
// Debug log result (the ID will be different in your case)
// DEBUG|ID = 001D000000JmKkeIAF

由于示例中的sObject变量包含DML调用后的ID,因此可以重用此sObject变量来执行进一步的DML操作,
例如更新,因为系统将能够通过匹配ID将sObject变量映射到其相应的记录。

您可以从数据库中检索记录以获取其字段,包括ID字段,但这不能用DML完成。
您需要使用SOQL编写一个查询。

3.Bulk DML

可以对单个sObject执行DML操作,也可以对sObject列表执行批量操作。
执行批量DML操作是推荐的方法,因为它有助于避免达到调控器限制,例如每个Apex事务150条语句的DML限制。
此限制旨在确保公平访问Lightning平台中的共享资源。
对sObject列表执行DML操作将计为一条DML语句,而不是每个sObject的一条语句。

本例通过在一次通话中插入联系人列表来批量插入联系人。
然后,样本也会批量更新这些联系人。

// Create a list of contacts
List<Contact> conList = new List<Contact> {
    new Contact(FirstName='Joe',LastName='Smith',Department='Finance'),
        new Contact(FirstName='Kathy',LastName='Smith',Department='Technology'),
        new Contact(FirstName='Caroline',LastName='

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一秒变桌子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值