尝试更新Postgres表中的JSON,但收到未知错误

时间:2019-05-24 20:02:00

标签: postgresql postgresql-9.5

这是我正在尝试的查询...

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'

更新

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

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

1 个答案:

答案 0 :(得分:0)

这应该做...

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

需要使用正确的数据类型