不要用把query/DML寫在迴圈裡,以避免超過系統限制的基本技巧範例
Trailhead教學-Bulk Apex 關於什麼是有效率的code,什麼是浪費資源的code。 其中解釋了: 在trigger中預設使用迴圈來處理bulk,而非逐筆record處理。 用inner query的技巧,直接獲得各account的related opportunity SELECT ... FROM ... WHERE ... IN ...(set) 例:[ SELECT Id , Name , CloseDate FROM Opportunity WHERE AccountId IN : Trigger . New ]。 也可以使用NOT IN,例: [ SELECT Id , Name FROM Account WHERE Id IN : Trigger . New AND Id NOT IN ( SELECT AccountId FROM Opportunity ) ] update/insert整個list,而不要逐筆record操作,以避免DML超過150的限制。