Я использую PostgreSQL 9.6.У меня есть массив типа ARRAY['a', 'b']::text[]
, который происходит из кода приложения и немного преобразуется в SQL, поэтому я не знаю его длины в коде приложения.
В таблице у меня есть поле типа jsonb
, которое мне нужно установить для объекта json, где ключами являются значения из данного массива, а значения все одинаковые иравно текущей отметке времени, т.е.
| id | my_field |
---------------------------------------------------------
| 1 | {"a":"1544605046.21065", "b":"1544605046.21065"} |
Я пытаюсь найти запрос на обновление для выполнения этого обновления, например, что-то вроде
UPDATE mytable
SET my_field = some_function(ARRAY['a','b']::text[], EXTRACT(EPOCH FROM CURRENT_TIMESTAMP)
WHERE <some_condition>;
Я смотрел на jsonb_build_object
функцию, котораяможет помочь мне, если бы я мог преобразовать свой массив, чередуя его элементы с текущей меткой времени, однако я не нашел способа сделать это.
Обратите внимание, что у меня, вероятно, будут сотни тысячзаписи для обновления, поэтому я ищу быстрое внедрение.
Буду признателен за любые советы по этому вопросу.