gpt4 book ai didi

postgresql - 为什么我使用 jsonb 的更新查询弹出错误?

转载 作者:行者123 更新时间:2023-11-29 13:08:50 27 4
gpt4 key购买 nike

我正在尝试更新我的 PostgreSQL 数据库中的一行,但它说找不到 x 列。问题是 pg 试图找到的列实际上是 jsonb_set 函数中新值的参数,所以我束手无策。

这很难解释,所以我包括了查询和它抛出的错误。

尝试在内部和外部添加引号、双引号、方括号……都没有用。

UPDATE public.sometable
SET somecolumn = jsonb_set(somecolumn, '{firstKey, secondKey}', someInputString), update_date=NOW(), update_username="someone@somewhere.com"
WHERE id=1
RETURNING *

我希望返回我正在更新的行的值,但我得到的是:

ERROR:  column "someInputString" does not exist
LINE 1: ...n = jsonb_set(somecolumn , '{firstKey, secondKey}', someInputString)...

最佳答案

您必须提供一个有效的 json 值作为函数的第三个参数:

UPDATE public.sometable
SET
somecolumn = jsonb_set(somecolumn, '{firstKey, secondKey}', '"someInputString"'),
update_date = now(),
update_username = 'someone@somewhere.com'
WHERE id = 1
RETURNING *

请注意,我猜 update_username 是一个文本,因此您应该对简单文本使用单引号。

Db<>fiddle.

关于postgresql - 为什么我使用 jsonb 的更新查询弹出错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57596654/

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