Попытка обновить JSON в таблице Postgres, но получить неизвестную ошибку - PullRequest
1 голос
/ 24 мая 2019

Это запрос, который я пытаюсь ...

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

Но я продолжаю получать сообщение об ошибке, что второй аргумент jsonb_set неизвестен, и неясно, почему это так.Ключ строки определенно существует.some_key - это ключ в preferences (имя столбца в таблице).

Кто-нибудь знает, что может быть причиной этого?

Эти запросы работают ...

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 голосов
/ 25 мая 2019

Это должно сделать это ...

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

Необходимо использовать правильный тип данных

...