ユーザーからデータを受信し (約 1000 レコードの一括読み込み)、それらを Salesforce データベースに保存するトリガーが必要です。問題は、ユーザーが複数回、Trigger.new
または別のバッチに表示される可能性があることです。カスタム オブジェクト名はCBK_User
であり、 というEXTERNAL_ID
(一意の) がありUSER_ID
ます。私のコードでは、ユーザーがまだデータベースに存在していないことを確認します。
Map<String, CBK_User__c> users = new Map<String,CBK_User__c>
([select Id, USER_ID__c from CBK_User__c where USER_ID__c in : userIds]);
(userIds には Trigger.new オブジェクトの外部 ID があります)
挿入しようとすると、次のエラーが表示されます。
DUPLICATE_VALUE, duplicate value found: USER_ID__c duplicates value on
record with id: a1QJ0000000HRd8"
一括挿入で値が重複しないようにするにはどうすればよいですか?