Рассмотрим таблицу с именем data_records , имеющую 5 записей и 2 столбца (C1 и C2).
Цель состоит в том, чтобы обновить всестроки столбца C2 с разными случайными значениями для каждого.
Следующее не работает:
UPDATE data_records SET
C2 = d.r
FROM
(SELECT random() as r, generate_series(1, 5) as g) as d
, так как оно обновляет все строки C2 с одинаковымичисло.
Однако подзапрос
SELECT random() as r, generate_series(1, 5) as g
, если он выполняется изолированно, генерирует нужную мне таблицу, то есть одно случайное значение на строку.
Как получить поведениеЯ описываю?
ОБНОВЛЕНИЕ
Причина, по которой я пытаюсь обновить с помощью подзапроса, заключается в том, что у меня есть случай, когда мой целевой столбец имеет тип jsonb .Мое предложение SET выглядит примерно так:
SET C2 = jsonb_set(C2, '{variation}', to_jsonb(d.r))
Благодаря комментариям я поняла, что в моем первоначальном вопросе не хватает объяснения.
Спасибо.