Ich habe eine TabellePrevent Postgres aus inlining Update subquery
CREATE TABLE author (
id SERIAL PRIMARY KEY,
followers INTEGER[]
);
INSERT INTO author (followers)
SELECT '{}'::INTEGER[]
FROM generate_series(0, 1000);
ich es mit ids bevölkert und zufällige Follower hinzufügen möchten. Problem entsteht, wenn I
laufeUPDATE author
SET followers = (SELECT array_agg(id)
FROM author
WHERE random() < 0.01);
Postgres versucht Smart werden soll, und führt die SELECT
nur einmal, was zu demselben Wert immer wieder wiederholt werden, und immer wieder. Was ist der richtige Weg, um dies zu erreichen? Ich versuchte mit und UDPATE .. FROM ..
aber ohne Erfolg
Dank. Scheint unglaublich hacky, aber es hat funktioniert – mgoszcz2
Sie könnten hier mehr lesen: [Problem mit dem Zufallsprinzip() in PostgreSQL Subselect] (http://www.simononsoftware.com/problem-with-random-in-postgresql-subselect/) – blackbishop