Postgres: Как скопировать элементы из столбца текстового массива в столбец json? - PullRequest
0 голосов
/ 29 октября 2018

У меня есть столбец текстового массива, и теперь я хотел бы создать новый столбец JSON. В столбце JSON я хотел бы создать пары ключ-значение из текстового массива и отметки текущего времени.

Пример:

Текстовый массив {"aa", "bb", "cc"} -> JSON {"aa":"12:00", "bb":"12:00", "cc":"12:00"}

Как обновить таким образом все строки во всей таблице?

1 Ответ

0 голосов
/ 29 октября 2018

Предполагая, что текущий столбец называется data, а новый столбец - new_data, вы можете сделать что-то вроде этого:

update the_table
  set new_data = x.new_data
from (
  select id, jsonb_object_agg(t.k, to_char(now(), 'hh24:mi')) as new_data
  from the_table, unnest(data) as t(k)
  group by id
) x
where x.id = foo.id;

Онлайн пример: https://rextester.com/SMBH72985

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...