この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

削除したレコードの復元

レコードを削除しても 15 日間はごみ箱に置かれ、その後で完全に削除されます。レコードがごみ箱にある間は、undelete 操作を使用して復元できます。これは、保持するレコードを誤って削除した場合などに便利です。

次の例では、「Trump」という名前の取引先を復元しています。ALL ROWS キーワードは、削除されたレコードやアーカイブ済みの活動を含め、最上位リレーションと集計リレーションの両方にあるすべての行をクエリします。
1swfobject.registerObject("clippy.codeblock-0", "9");
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17Account a = new Account(Name='Trump');
18insert(a);
19insert(new Contact(LastName='Carter',AccountId=a.Id));
20delete a;
21
22Account[] savedAccts = [SELECT Id, Name FROM Account WHERE Name = 'Trump' ALL ROWS]; 
23try {
24    undelete savedAccts;
25} catch (DmlException e) {
26    // Process exception here
27}

DmlException の処理についての詳細は、一括 DML 例外処理を参照してください。

メモ

復元に関する考慮事項

undelete ステートメントを使用するときは、次の点に注意してください。
  • マージの結果として削除されたレコードを復元できますが、子オブジェクトに再設定された親を元に戻すことはできません。
  • マージの結果として削除されたレコードなど、削除されたレコードを識別するには、SOQL クエリで ALL ROWS パラメータを使用します。
  • 「レコードを削除および復元するときの参照整合性」を参照してください。