콘텐츠로 이동

JSON 객체에 키-값 쌍을 삽입하거나 업데이트합니다.

JSON_OBJECT_INSERT(<json_object>, <key>, <value>[, <update_flag>])
매개변수 설명
<json_object> 입력 JSON 객체입니다.
<key> 삽입하거나 업데이트할 키입니다.
<value> 키에 할당할 값입니다.
<update_flag> 지정한 키가 JSON 객체에 이미 있을 때 값을 교체할지 제어하는 불리언 플래그입니다. true이면 키가 이미 있는 경우 값을 교체합니다. false이거나 생략하면 키가 있을 때 오류가 발생합니다.

업데이트된 JSON 객체를 반환합니다.

이 예제는 기존 JSON 객체에 값이 3인 새 키 ’c’를 삽입하는 방법을 보여줍니다.

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

이 예제는 업데이트 플래그를 true로 설정해 키의 값을 교체할 수 있게 하여, 기존 키 ’a’의 값을 1에서 10으로 업데이트하는 방법을 보여줍니다.

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

이 예제는 업데이트 플래그를 true로 지정하지 않고 기존 키 ’a’에 값을 삽입하려 할 때 발생하는 오류를 보여줍니다.

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