OBJECT_INSERT
JSON オブジェクトにキーと値のペアを挿入または更新します。
エイリアス
JSON_OBJECT_INSERT
構文
OBJECT_INSERT(<json_object>, <key>, <value>[, <update_flag>])
戻り値の型
更新後の 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)`