У меня есть таблицаПредотвращение Postgres из встраивания обновления подзапросов
CREATE TABLE author (
id SERIAL PRIMARY KEY,
followers INTEGER[]
);
INSERT INTO author (followers)
SELECT '{}'::INTEGER[]
FROM generate_series(0, 1000);
Я заселил ее с идентификаторами и хочу добавить случайные последователь. Проблема возникает, когда я бегу
UPDATE author
SET followers = (SELECT array_agg(id)
FROM author
WHERE random() < 0.01);
Postgres является пытается быть умным и выполняет SELECT
только один раз, в результате чего же значение, которое будет повторяться снова и снова. Каков правильный способ достижения этого? Я пробовал использовать OFFSET 0
и UDPATE .. FROM ..
, но безрезультатно
Спасибо. Кажется невероятно взломанным, но это сработало – mgoszcz2
. Вы можете прочитать больше здесь: [Проблема со случайным() в подзапросе PostgreSQL] (http://www.simononsoftware.com/problem-with-random-in-postgresql-subselect/) – blackbishop