PSQL 更新一个 jsonb 属性 并连接到它的当前值

PSQL Update a jsonb property with a concatenation to its current value

假设我有一个 jsonb 类型的列 X。 X 有 json 的结构

{"y":"some value","z":"some more values"}.

现在我要实现的是,我要追加“!!!!”到所有 z 属性的末尾。附加操作应该更新现有记录

使用 ->> 运算符将 z 的值作为 text 并使用 || 运算符附加另一个字符串。用 to_jsonb() 将结果转换为 jsonb 并用 jsonb_set().

赋值给 z
SELECT jsonb_set(x, '{z}', to_jsonb(x->>'z' || '!!!!'))
       FROM elbat;

更多信息:"9.15. JSON Functions and Operators"

成功了

UPDATE thetable set x=jsonb_set(x, '{z}', to_jsonb(x->>'z' || '!!!!'), true)