Hier ist es ein eleganter Weg, um die neuesten Funktionen verwenden. Ich werde das Unix-Lexikon nutzen (/ usr/share/dict/words) und kopieren Sie sie in meine PostgreSQL Daten:
cp /usr/share/dict/words data/pg95/words.list
Dann können Sie leicht eine Tonne ohne Sinn Beschreibung erstellen BUT durchsuchbar mit Wörterbuch Wörter mit der folgende Schritte:
1) Tabelle und Funktion erstellen. GetNArrayS ruft alle Elemente in einem Array und die Anzahl der Verkettungen ab.
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;
Sobald Sie alles an seinem Platz haben, führen Sie den Einsatz mit 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);
Und jetzt, wählen Sie wie gewohnt:
postgres=# select * from randomtable limit 3;
id | description
----+---------------------------------------------
1 | ultracentenarian splenodiagnosis manurially
2 | insequent monopolarity funipendulous
3 | ruminate geodic unconcludable
(3 rows)
Warum 'nicht generate_series SELECT (1,10) AS id, md5 (zufälliger() :: Text) AS descr; '? –
@AntonyHatchkins ohne guten Grund. Behoben nach Ihrem Vorschlag. Danke – leonbloy