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

削除したレコードの復元

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

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

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

メモ

復元に関する考慮事項

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