削除された項目を含む SOQL クエリを実行する
merge または delete で削除されたレコードの情報を含む SOQL クエリを実行するには、QueryAll リソースを使用します。Query リソースでは削除された項目が自動的に除外されるため、Query ではなく QueryAll を使用します。
次のクエリは、削除された Merchandise__c レコードが 1 つある組織で、削除されたすべての Merchandise__c レコードを対象に Name 項目の値を要求します。同じクエリに QueryAll ではなく Query を使用した場合、レコードは返されません。これは、Query では削除されたレコードがすべて結果セットから自動的に除外されるためです。
- 削除された Merchandise__c レコードのクエリを実行する場合の使用例
-
1curl https://MyDomainName.my.salesforce.com/services/data/v58.0/queryAll/?q=SELECT+Name+from+Merchandise__c+WHERE+isDeleted+=+TRUE -H "Authorization: Bearer token" - クエリを実行する場合のリクエストボディの例
- 不要
- クエリを実行する場合のレスポンスボディの例
-
1{ 2 "done" : true, 3 "totalSize" : 1, 4 "records" : 5 [ 6 { 7 "attributes" : 8 { 9 "type" : "Merchandise__c", 10 "url" : "/services/data/v58.0/sobjects/Merchandise__c/a00D0000008pQRAIX2" 11 }, 12 "Name" : "Merchandise 1" 13 }, 14 ] 15}
SOQL クエリの残りの結果の取得
最初のクエリで結果の一部のみを返す場合、応答の最後に nextRecordsUrl という項目が含まれます。たとえば、クエリの最後に次の属性があるとします。
1"nextRecordsUrl" : "/services/data/v58.0/query/01gD0000002HU6KIAW-2000"この場合、レコードの次のバッチを要求し、すべてのレコードが取得されるまでこの操作を繰り返します。これらの要求は nextRecordsUrl を使用し、パラメータを含みません。
nextRecordsUrl の URL に query が指定されている場合でも、最初の QueryAll 要求の残りの結果が提供されます。残りの結果には、最初のクエリに一致した削除されたレコードが含まれます。
- 残りの結果を取得する場合の使用例
-
1curl https://MyDomainName.my.salesforce.com/services/data/v58.0/query/01gD0000002HU6KIAW-2000 -H "Authorization: Bearer token" - 残りの結果を取得する場合のリクエストボディの例
- 不要
- 残りの結果を取得する場合のレスポンスボディの例
-
1{ 2 "done" : true, 3 "totalSize" : 3214, 4 "records" : [...] 5}