【Apexエラー】「Too many SOQL queries: 101」

スポンサーリンク
【Apexエラー】「Too many SOQL queries: 101」 Apex

こんにちは、にいるです。

今回は開発関連です。
エラー「Too many SOQL queries: 101」について、見ていきたいと思います。
いわゆるガバナ制限ですね。

【ヘルプ】「System.LimitException: Too many SOQL queries: 101」エラー

1.エラー発生原因

「Too many SOQL queries: 101」の発生原因は、1つのクエリやDML実行処理で101件以上のレコード操作を行った事です。

Apexでは、ガバナ制限というSalesforce特有の仕様があります。
これは、一度に実行できるクエリを100件に抑えるというものです。
つまり、101件を越えるクエリは発行できない、ということになります。

2.エラー解決策

このエラー「Too many SOQL queries: 101」の解決策は、上記で言えば、for文の中でDMLを実行しない事ですね。
またfor文のなかでSELECT文を記載するのもNGです。

どうしてもfor文の中でDMLを書きたい場合は、一度にListに入れてからfor文の外でInsertすれば問題ないと思います。

3.まとめ

いかがでしたでしょうか。

ガバナ制限もたまに出会うエラーですが、for文にクエリを入れないようにすれば避けることは出来ます。
また、クエリだけでなくDML文も対象となるので、レコード操作を考える際はしっかり抑えておきましょう。

他にも色々と標準機能やSalesforce機能について紹介しています。
そのまとめ一覧ページはこちらになりますので、よければ見てみてください。

ではでは!

Salesforce 機能別 まとめページ

コメント

タイトルとURLをコピーしました