gpt4 book ai didi

postgresql - 更改 Postgres 中 JSONB 列中值的类型

转载 作者:行者123 更新时间:2023-11-29 14:13:37 26 4
gpt4 key购买 nike

我有存储 JSON 对象的 JSONB 类型的“主题”列。示例:{"team": "1234", "user": 5678}{"org": 123} 或 {"team": 1234}。

我应该使用什么查询来将所有出现的 {"team": "1234", ...} 更改为 {"team": 1234, ...}?

我试过:

UPDATE the_table SET subject = jsonb_set(subject, '{team}', (subject->>'team')::int)

但我得到:

ERROR: function jsonb_set(jsonb, unknown, integer) does not exist
LINE 2: SET subject = jsonb_set(subject, 'team', (subject->>'team'):...
^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.

最佳答案

只需将 subject->>'team' 结果直接转换为 jsonb 而不是 int。不要忘记添加 WHERE 过滤器,否则您的第二条记录将被删除。

demo:db<>fiddle

UPDATE the_table 
SET subject = jsonb_set(subject, '{team}', (subject->>'team')::jsonb)
WHERE subject->>'team' IS NOT NULL;

关于postgresql - 更改 Postgres 中 JSONB 列中值的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56887776/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com