如果现有记录随后根据您的要求更新某些字段,如何在帐户对象(salesfroce)上编写触发器?
谢谢
答案 0 :(得分:0)
如何使用upsert
?它允许您插入记录或更新记录(如果已存在)。一条智能命令中的insert
和update
。
您想要更新记录,如果它不存在,则创建一个新记录。
使用upsert
,您可以首先尝试获取记录(如果未找到任何记录,则创建新实例),然后设置字段,最后,对其进行向上插入。
赞:
Account myAcc;
try {
myAcc = [ SELECT Id, Name FROM Account where Id='someIdImLookingFor'];
myAcc.Name = 'My desired name';
catch (Exception e) {
myAcc = new Account(Name='My desired name');
}
upsert myAcc
答案 1 :(得分:0)
“ Upsert”是实现此目的的最佳方法。如果有记录,则可以帮助您更新记录,否则可以创建新记录。
Account[] acctsList = [SELECT Id, Name, BillingCity FROM Account WHERE BillingCity = 'Bombay'];
for (Account a : acctsList) {
a.BillingCity = 'Mumbai';
}
Account newAcct = new Account(Name = 'Acme', BillingCity = 'San Francisco');
acctsList.add(newAcct);
try {
upsert acctsList;
} catch (DmlException e) {
// Process exception here
}