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