削除したレコードの復元
レコードを削除しても 15 日間はごみ箱に置かれ、その後で完全に削除されます。レコードがごみ箱にある間は、undelete 操作を使用して復元できます。保持する必要があるレコードを誤って削除してしまった場合は、ごみ箱から復元します。
例
次の例では、「Universal Containers」という名前の取引先が復元されます。ALL ROWS キーワードは、削除されたレコードやアーカイブ済みの活動を含め、最上位リレーションと集計リレーションの両方にあるすべての行を照会します。
1Account a = new Account(Name='Universal Containers');
2insert(a);
3insert(new Contact(LastName='Carter',AccountId=a.Id));
4delete a;
5
6Account[] savedAccts = [SELECT Id, Name FROM Account WHERE Name = 'Universal Containers' ALL ROWS];
7try {
8 undelete savedAccts;
9} catch (DmlException e) {
10 // Process exception here
11}復元に関する考慮事項
undelete ステートメントを使用するときは、次の点に注意してください。
- マージの結果として削除されたレコードを復元できます。ただし、マージによって子オブジェクトの親が変更され、その親の変更を取り消すことはできません。
- マージの結果として削除されたレコードなど、削除されたレコードを識別するには、SOQL クエリで ALL ROWS パラメーターを使用します。
- 「レコードを削除および復元するときの参照整合性」を参照してください。