gpt4 book ai didi

postgresql - 通过向现有键值加 1 来更新 PostgreSQL JSONB 键值

转载 作者:行者123 更新时间:2023-11-29 12:55:58 25 4
gpt4 key购买 nike

我在更新 JSON 数据时遇到错误

CREATE TABLE testTable
AS
SELECT $${
"id": 1,
"value": 100
}$$::jsonb AS jsondata;

我想通过加 1 将 value 更新为 101,在访问许多网站后我发现了这个语句

UPDATE testTable
SET jsondata = JSONB_SET(jsondata, '{value}', (jsondata->>'value')::int + 1);

但上面一个给出错误“无法将 jsonb 转换为 int”

我的预期输出是

{
"id": 1,
"value": 101
}

最佳答案

查看jsonb_set的签名(使用\df jsonb_set)

   Schema   |   Name    | Result data type |                                  Argument data types                                   |  Type  
------------+-----------+------------------+----------------------------------------------------------------------------------------+--------
pg_catalog | jsonb_set | jsonb | jsonb_in jsonb, path text[], replacement jsonb, create_if_missing boolean DEFAULT true | normal

你要的是这个..

UPDATE testTable
SET jsondata = jsonb_set(
jsondata,
ARRAY['value'],
to_jsonb((jsondata->>'value')::int + 1)
)
;

关于postgresql - 通过向现有键值加 1 来更新 PostgreSQL JSONB 键值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43328904/

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