天天看點

Salesforce soql 悲觀鎖For Update

For Update

Account [] accts = [SELECT Id FROM Account LIMIT 2 FOR UPDATE]; 

在Apex中,您可以使用FOR UPDATE在更新時鎖定sObject記錄,以防止競争條件等線程安全問題。

當sObject記錄被鎖定時,不允許其他客戶或使用者通過代碼或Salesforce使用者界面進行更新。

鎖定記錄的用戶端可以在記錄上執行邏輯并進行更新,并保證鎖定的記錄不會被鎖定

在鎖定期間由另一個用戶端改變。 事務完成後,鎖被釋放。

要在Apex中鎖定一組sObject記錄,在任何内聯SOQL語句之後嵌入關鍵字FOR UPDATE。