需要帮助让jsob_set在PostgreSQL程序下工作, 从子表中获取记录并更新父表的json字段值。 将所选值分配给变量并将其添加到值下的jsonb_set, 例如
jsonb_set(jsonFieldOfDb,' {json_Column}',jsonVariable,TRUE);
其中jsonVariable是我从第二个表中选择的值。 有关详细信息,请查看附带的屏幕截图。
答案 0 :(得分:2)
你可能需要施展路径& jsonVariable
至text[]
和jsonb
jsonb_set(jsonFieldOfDb,'{json_Column}'::text[],jsonVariable::jsonb,true)
如果您的jsonVariable
只是一个普通字符串,您可能还需要引用它们
jsonb_set(jsonFieldOfDb,'{json_Column}'::text[],('"' || jsonVariable || '"')::jsonb, true)
答案 1 :(得分:0)
添加到Yurui的答案中,如果您想设置字符串以外的动态值,则可以使用to_jsonb
函数将动态变量转换为jsonb:
UPDATE event AS e
SET source_json = jsonb_set(source_json, '{consumerId}'::text[], to_jsonb(p.promoter_id))
FROM promoter AS p
WHERE e.id = p.event_id and p.app_id in ('123');