レコードの削除
データベースにレコードを保持したら、delete 操作を使用してそれらのレコードを削除できます。レコードを削除しても Salesforce から完全に削除されるわけではなく、復元できるように 15 日間はごみ箱に置かれます。削除したレコードの復元については、後のセクションで説明します。
例
次の例では、「DotCom」という名前のすべての取引先を削除しています。
1Account[] doomedAccts = [SELECT Id, Name FROM Account
2 WHERE Name = 'DotCom'];
3try {
4 delete doomedAccts;
5} catch (DmlException e) {
6 // Process exception here
7}レコードを削除および復元するときの参照整合性
delete 操作では、カスケード削除がサポートされています。親オブジェクトを削除すると、各子レコードが削除可能な場合は自動的に削除されます。
たとえば、ケースレコードを削除すると、Apex はケースに関連付けられたすべての CaseComment、CaseHistory、および CaseSolution レコードを自動的に削除します。ただし、特定の子レコードが削除可能でない場合、または現在使用中の場合、親ケースレコードの delete 操作は失敗します。
undelete 操作を行うと、次のリレーションの種類に関して、レコードの関連付けが復元されます。- 親取引�� (取引先の [親取引先] 項目で指定)
- 取引先と取引先責任者の間接リレーション (取引先責任者の [関連取引先] 関連リストまたは取引先の [関連取引先責任者] 関連リストで指定)
- 親ケース (ケースの [親ケース] 項目で指定)
- 翻訳ソリューションのマスターソリューション (ソリューションの [マスターソリューション] 項目で指定)
- 取引先責任者のマネージャー (取引先責任者の [上司] 項目で指定)
- 納入商品に関連付けられている商品 (納入商品の [商品] 項目で指定)
- 見積に関連付けられている商談 (見積の [商談] 項目で指定)
- すべてのカスタム参照関係
- 取引先およびリレーショングループのリレーショングループメンバー (一部例外あり)
- タグ
- 記事のカテゴリ、公開状態、割り当て