Вот это более элегантный способ с использованием новейших функций. Я буду использовать словарь Unix (/ usr / share / dict / words) и скопировать его в мои данные PostgreSQL:
cp /usr/share/dict/words data/pg95/words.list
Затем вы можете легко создать тонну бессмысленного описания, НО для поиска по словарным словам со следующими шагами:
1) Создать таблицу и функцию. getNArrayS получает все элементы в массиве и сколько раз ему нужно объединить.
CREATE TABLE randomTable(id serial PRIMARY KEY, description text);
CREATE OR REPLACE FUNCTION getNArrayS(el text[], count int) RETURNS text AS $$
SELECT string_agg(el[random()*(array_length(el,1)-1)+1], ' ') FROM generate_series(1,count) g(i)
$$
VOLATILE
LANGUAGE SQL;
Как только вы все на месте, запустите вставку, используя CTE:
WITH t(ray) AS(
SELECT (string_to_array(pg_read_file('words.list')::text,E'\n'))
)
INSERT INTO randomTable(description)
SELECT getNArrayS(T.ray, 3) FROM T, generate_series(1,10000);
А теперь выберите как обычно:
postgres=# select * from randomtable limit 3;
id | description
----+---------------------------------------------
1 | ultracentenarian splenodiagnosis manurially
2 | insequent monopolarity funipendulous
3 | ruminate geodic unconcludable
(3 rows)