この記事の目次
Salesforce apexとは?

apexのDML操作について

insertステートメント
insert ステートメントでは、1つ以上のsObjectを組織のデータに追加することが可能です。 構文は、insertsObjectとinsert sObject[]を利用します。 例えば、「A」という名前の取引先を追加する場合、Account newAcct = new Account(name = 'A');
try {
insert newAcct;
} catch (DmlException e) {
// Process exception here
}
というコードで追加します。
updateステートメント
DML操作におけるupdateステートメントで、 sObjectレコードを更新します。 構文は、updatesObjectとupdate sObject[]を使用します。 例えば、「A」という名前のBillingPostalCode項目を更新する場合、Account a = new Account(Name='A');
insert(a);
Account myAcct = [SELECT Id, Name, BillingPostalCode FROM Account WHERE Id = :a.Id];
myAcct.BillingPostalCode = '111-1111';
try {
update myAcct;
} catch (DmlException e) {
// Process exception here
}
こちらのコードを使用します。
upsertステートメント
既存のオブジェクトの存在を確かめたい場合にUpsert ステートメントを利用します。 構文にはupsert sObject [opt_field]とupsert sObject[] [opt_field]を使用します。 取引先のリストを更新、挿入をしたい場合は、List acctList = new List();
// Fill the accounts list with some accounts
try {
upsert acctList;
} catch (DmlException e) {
}
こちらのコードを使用します。
Merge ステートメント
merge ステートメントでは、同じsObjectデータ型のレコードを、1つのレコードに融合します。 マージするレコードは最大3つまでです。 例えば「A」と「B」という名前の取引先をマージする場合、List ls = new List{new Account(name='A'),new Account(name='B')};
insert ls;
Account masterAcct = [SELECT Id, Name FROM Account WHERE Name = 'A' LIMIT 1];
Account mergeAcct = [SELECT Id, Name FROM Account WHERE Name = 'B' LIMIT 1];
try {
merge masterAcct mergeAcct;
} catch (DmlException e) {
// Process exception here
}
というコードで可能です。
出典:Apex DML 操作|Merge ステートメント
参照:https://developer.salesforce.com/docs/atlas.ja-jp.apexcode.meta/apexcode/apex_dml_section.htm
Salesforce apexのDML使用における留意点

apexのDMLをうまく活用してSalesforceのデータを操作しよう!
