📣新登場!TiDB Cloud BYOC、TiDB Cloud Filesystem、PostgreSQL-compatible TiDB Cloud Starter がパブリックプレビュー中。このページは自動翻訳されたものです。原文はこちらからご覧ください。

OBJECT_INSERT



JSON オブジェクトにキーと値のペアを挿入または更新します。

エイリアス

  • JSON_OBJECT_INSERT

構文

OBJECT_INSERT(<json_object>, <key>, <value>[, <update_flag>])
パラメータ説明
<json_object>入力 JSON オブジェクトです。
<key>挿入または更新するキーです。
<value>キーに割り当てる値です。
<update_flag>指定したキーが JSON オブジェクト内にすでに存在する場合に、その値を置き換えるかどうかを制御する boolean フラグです。true の場合、キーがすでに存在すると値を置き換えます。false(または省略時)の場合、キーが存在するとエラーが発生します。

戻り値の型

更新後の JSON オブジェクトを返します。

例

次の例は、既存の JSON オブジェクトに値 3 を持つ新しいキー 'c' を挿入する方法を示しています。

SELECT OBJECT_INSERT('{"a":1,"b":2,"d":4}'::variant, 'c', 3); ┌────────────────────────────────────────────────────────────┐ │ object_insert('{"a":1,"b":2,"d":4}'::VARIANT, 'c', 3) │ ├────────────────────────────────────────────────────────────┤ │ {"a":1,"b":2,"c":3,"d":4} │ └────────────────────────────────────────────────────────────┘

次の例は、更新フラグを true に設定して既存キー 'a' の値を 1 から 10 に更新し、キーの値を置き換えられるようにする方法を示しています。

SELECT OBJECT_INSERT('{"a":1,"b":2,"d":4}'::variant, 'a', 10, true); ┌───────────────────────────────────────────────────────────────────┐ │ object_insert('{"a":1,"b":2,"d":4}'::VARIANT, 'a', 10, TRUE) │ ├───────────────────────────────────────────────────────────────────┤ │ {"a":10,"b":2,"d":4} │ └───────────────────────────────────────────────────────────────────┘

次の例は、更新フラグを true に設定せずに既存キー 'a' に値を挿入しようとした場合に発生するエラーを示しています。

SELECT OBJECT_INSERT('{"a":1,"b":2,"d":4}'::variant, 'a', 10); error: APIError: ResponseError with 1006: ObjectDuplicateKey while evaluating function `object_insert('{"a":1,"b":2,"d":4}', 'a', 10)` in expr `object_insert('{"a":1,"b":2,"d":4}', 'a', 10)`

このページは役に立ちましたか?