试图在Postgres表中更新JSON,但会遇到未知错误



这是我尝试的查询...

UPDATE users 
SET preferences = jsonb_set(preferences, '{some_key}', 'true'::jsonb) 
WHERE id IN (1, 2)

,但我一直遇到一个错误,即jsonb_set的第二个参数未知,目前尚不清楚为什么是这种情况。字符串键肯定存在。some_keypreferences(表中的列名(中的键。

有人知道会导致这一点吗?

这些查询有效...

SELECT preferences -> 'some_key' AS some_key FROM users
SELECT preferences -> 'some_key' AS some_key FROM users WHERE preferences -> 'some_key' = 'false'

update

这是preferences列包含的内容...

“some_key”=>"false", "some_other_key"=>"true",

这应该做到...

UPDATE user SET preferences = preferences || '"some_key"=>"true"' :: hstore;

需要使用正确的数据类型

最新更新