Postgres更新JSON字段

时间:2016-05-05 13:42:49

标签: json database postgresql psql

我有几个包含这样的数据的Postgres 9.4表:

| id | data                                      |
|----|-------------------------------------------|
| 1  | {"user": "joe", "updated-time": 123}      |
| 2  | {"message": "hi", "updated-time": 321}    |

我需要将JSON列转换为类似

的内容
| id | data                                                         |
|----|--------------------------------------------------------------|
| 1  | {"user": "joe", "updated-time": {123, "unit":"millis"}}      |
| 2  | {"message": "hi", "updated-time": {321, "unit":"millis"}}    |

理想情况下,将转换应用于多个表格会很容易。应更新包含JSON密钥data->'updated-time'的表,并且应跳过不包含JSON密钥的表。谢谢!

1 个答案:

答案 0 :(得分:1)

您可以使用||运算符将两个jsonb对象合并在一起。

select '{"foo":"bar"}'::jsonb || '{"baz":"bar"}'::jsonb;
= {"baz": "bar", "foo": "bar"}