尝试在 Postgres table 中更新 JSON 但出现未知错误
Trying to update JSON in Postgres table but getting an unknown error
这是我正在尝试的查询...
UPDATE users
SET preferences = jsonb_set(preferences, '{some_key}', 'true'::jsonb)
WHERE id IN (1, 2)
但我一直收到 jsonb_set
的第二个参数未知的错误,目前还不清楚为什么会这样。字符串键肯定存在。 some_key
是 preferences
中的一个键(table 中的列名)。
有人知道是什么原因造成的吗?
这些查询有效...
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",
应该这样做...
UPDATE user SET preferences = preferences || '"some_key"=>"true"' :: hstore;
需要使用正确的数据类型
这是我正在尝试的查询...
UPDATE users
SET preferences = jsonb_set(preferences, '{some_key}', 'true'::jsonb)
WHERE id IN (1, 2)
但我一直收到 jsonb_set
的第二个参数未知的错误,目前还不清楚为什么会这样。字符串键肯定存在。 some_key
是 preferences
中的一个键(table 中的列名)。
有人知道是什么原因造成的吗?
这些查询有效...
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",
应该这样做...
UPDATE user SET preferences = preferences || '"some_key"=>"true"' :: hstore;
需要使用正确的数据类型