Salesforce 認定 MuleSoft デベロッパー 無料問題 6 / 10 ・ 分野6: コネクターを利用する
id が AUTO_INCREMENT のテーブル electronic に、Insert で1行を足した。Insert の Advanced の設定は既定のままである。Insert の出力はどうなっているか。
- 足した行の配列で、id 列は空になっている
- Statement Result で、generatedKeys に新しい id
- Statement Result で、generatedKeys は空の map
- 足した行の配列で、id 列に新しい値が入っている
正解と解説を見る
正解: C
正解の理由
Insert の操作は Statement Result のオブジェクトを出力し、影響を受けた行の数を表す整数 affectedRows と、自動生成されたキーを持つ map generatedKeys の2つの項目を持つ。行が足されても、generatedKeys の情報は余分な負荷を避けるために既定では無効なので、出力は { "affectedRows": 1, "generatedKeys": {} } になる。新しい id を受け取りたいときは、Advanced タブで Auto generate keys を True(autoGenerateKeys="true")にする。
違う選択肢
「Statement Result で、generatedKeys に新しい id」… 自動生成されたキーの情報は、余分な負荷を避けるために既定で返らない。行は足されていても、Auto generate keys を True にしない限り generatedKeys は空の map になる。
「足した行の配列で、id 列に新しい値が入っている」… 行の配列を返すのは Select の操作である。Insert は、影響を受けた行の数 affectedRows と、生成されたキーの map generatedKeys の2つを持つ Statement Result を返す。
「足した行の配列で、id 列は空になっている」… Insert の出力は行の配列ではなく Statement Result である。足した行そのものは返らず、affectedRows に 1 が入り、キーの情報は既定では空の map になる。
関連する設定
1行で複数のキーが生成されるときは、Auto generate column names に ['id'] のような DataWeave のリスト(autoGeneratedKeysColumnNames="#[['id']]")を入れて、返す列を絞れる。