この記事の目次
returning句とは?

INSERT文
INSERT文はテーブルに行を追加するために使われますが、returning句をオプションとして添えることで、追加した行の値を取得することができます。 それでは以下の例を見てみましょう。CREATE TABLE users (firstname text, lastname text, id serial primary key);
INSERT INTO users (firstname, lastname) VALUES ('Joe', 'Cool') RETURNING id;
出典:https://www.postgresql.jp/document/9.6/html/dml-returning.html
例では、1行目のCREATE行がユーザーのテーブルを作成し、2行目のINSERT行が1行目で作成したテーブルにユーザーを追加しています。
ここで、2行目の最後にRETURNINGと記述されていることに注目してください。これが、returning句です。RETURNING id と記述することによって、追加したユーザーのIDを取得することができます。
UPDATE文
UPDATE文は、行の値を更新するために使われますが、returning句をオプションとして使うことで、更新した新しい値の内容を取得できます。 では、例を見てみましょう。UPDATE products SET price = price * 1.10
WHERE price <= 99.99
RETURNING name, price AS new_price
出典:https://www.postgresql.jp/document/9.6/html/dml-returning.html
この例において、1行目、2行目のUPDATE文は、priceが99.99以下の場合は、priceを1.10倍した値に更新します。
ここで、3行目でRETURNINGがオプションとして使われています。この句によって、更新されたpriceの値とnameが取得できます。
DELETE文
DELETE文は、行を削除するために使われますが、returning句をオプションとして使うことで、削除した行の値を取得することができます。 以下の例を見てみましょう。DELETE FROM products
WHERE obsoletion_date = 'today'
RETURNING *;
出典:https://www.postgresql.jp/document/9.6/html/dml-returning.html
この例では、1行目、2行目のDELETE文は、obsoletion_dateがtodayであった場合にその行を削除します。
3行目でRETURNINGをオプションとして使うことで、削除した行の値を取得します。
returning句を使うメリット
returning句を利用するメリットは、処理を行った履歴を残せることです。 これまでの例で見たように、returning句を活用することで処理を行った行の値を取得できるので、どの行に処理を行ったかの履歴を取得できます。 これは大量のデータを扱う際に重要です。DELETE文で条件が合致したものを削除したあとに、どの行を削除したかが分からなくなることを防ぎます。 また、処理を行った値をそのまま次の処理に利用することができます。つまり、削除した行をそのまま他の行に追加することなどが簡単に実現できます。Salesforceでのreturning句の活用

構文
それでは、どのようにSalesforceでreturning句を利用するのか具体的に見ていきましょう。 以下の例は、Salesforce developerで公開されているreturning句を利用したテキスト検索結果を返す構文です。FIND {MyProspect} RETURNING MySampleExternalObject, KnowledgeArticleVersion, Document, FeedComment, FeedItem, ContentVersion, Product2, Solution
出典:https://developer.salesforce.com/docs/atlas.ja-jp.soql_sosl.meta/soql_sosl/sforce_api_calls_sosl_returning.htm
この例では、MyProspectの単語を検索して、各項目を取得します。
returning句で指定可能な要素
returning句で指定できる要素を具体的に見ていきましょう。 returning句は以下の例のように記述できます。RETURNING ObjectTypeName
[(FieldList [WHERE conditionExpression] [USING Listview=listview name] [ORDER BY Clause] [LIMIT n] [OFFSET n])]
[, ObjectTypeName [(FieldList [WHERE conditionExpression] [ORDER BY Clause] [LIMIT n] [OFFSET n])]]
出典:https://developer.salesforce.com/docs/atlas.ja-jp.soql_sosl.meta/soql_sosl/sforce_api_calls_sosl_returning.htm
各要素の説明
returning句で指定可能な要素について簡単に説明していきます。 以下のテーブルでは、returning句で指定可能な要素を簡潔に説明しています。このテーブルを参照して実際に記述してみると、より理解が深まるでしょう。要素 | 説明 |
---|---|
ObjectTypeName | 返されるオブジェクト名 |
FieldList | カンマで区切られた項目のリスト |
USING ListView= | オブジェクトのリストビュー内で検索するための句 |
WHERE conditionExpression | 条件によって絞り込む方法を指定する句 |
ORDER BY Clause | 返される結果の順序付け方法を指定する句 |
LIMIT n | 指定されたオブジェクトで最大数を設定する句 |
OFFSET n | 返される結果の開始行を指定する句 |
Salesforceの便利な機能を使い倒そう!

この記事の監修者・著者

-
未経験からITエンジニアへのキャリアチェンジを支援するサイト「キャリアチェンジアカデミー」を運営。これまで4500人以上のITエンジニアを未経験から育成・排出してきました。
・AWS、salesforce、LPICの合計認定資格取得件数:2100以上(2023年6月時点)
・AWS Japan Certification Award 2020 ライジングスター of the Year 受賞
最新の投稿
- 2023年12月6日キャリア・転職システムエンジニアへのキャリアチェンジで必要な資格は?
- 2023年12月6日キャリア・転職キャリアチェンジでエージェントを活用するメリット
- 2023年12月6日キャリア・転職プログラマーへのキャリアチェンジに必要な資格は?
- 2023年12月6日キャリア・転職サーバーエンジニアへのキャリアチェンジで必要な資格は?