我有兩個字段的表:SQL填充表用隨機數據
- ID(UUID)是PrimaryKey的和
- 描述(var255)
我想插入隨機數據與sql轉換。 我想這個描述是隨機的。
Can some1 please help me with this?
PS:即時通訊使用postgresql。
我有兩個字段的表:SQL填充表用隨機數據
我想插入隨機數據與sql轉換。 我想這個描述是隨機的。
Can some1 please help me with this?
PS:即時通訊使用postgresql。
我不知道到底,如果這符合對「隨機說明」的要求,如果你想生成完整的數據目前尚不清楚:但是,例如,這將產生10條具有連續的IDS和隨機文本:
test=# SELECT generate_series(1,10) AS id, md5(random()::text) AS descr;
id | descr
----+----------------------------------
1 | 65c141ee1fdeb269d2e393cb1d3e1c09
2 | 269638b9061149e9228d1b2718cb035e
3 | 020bce01ba6a6623702c4da1bc6d556e
4 | 18fad4813efe3dcdb388d7d8c4b6d3b4
5 | a7859b3bcf7ff11f921ceef58dc1e5b5
6 | 63691d4a20f7f23843503349c32aa08c
7 | ca317278d40f2f3ac81224f6996d1c57
8 | bb4a284e1c53775a02ebd6ec91bbb847
9 | b444b5ea7966cd76174a618ec0bb9901
10 | 800495c53976f60641fb4d486be61dc6
(10 rows)
我假設sentance ==語句?你可以使用perl或plperl,因爲perl有一些很好的隨機數據生成器。檢出perl CPAN模塊Data :: Random來啓動。
下面是一個perl腳本的示例,用於生成從CPAN獲取的一些不同的隨機內容。
use Data::Random qw(:all);
my @random_words = rand_words(size => 10);
my @random_chars = rand_chars(set => 'all', min => 5, max => 8);
my @random_set = rand_set(set => \@set, size => 5);
my $random_enum = rand_enum(set => \@set);
my $random_date = rand_date();
my $random_time = rand_time();
my $random_datetime = rand_datetime();
open(FILE, ">rand_image.png") or die $!;
binmode(FILE);
print FILE rand_image(bgcolor => [0, 0, 0]);
close(FILE);
它適用於我。找到here.
create table t_random as select s, md5(random()::text) from generate_Series(1,5) s;
它很有用,可以知道如何在查詢的部分中完成時間序列。感謝您的跟進。 – 2016-12-05 10:53:28
這裏使用最新功能更優雅。我將使用Unix字典(在/ usr /共享/字典/字),並將其複製到我的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)
爲什麼不'選擇generate_series(1,10) AS id,md5(random():: text)AS descr;'? – 2014-10-16 08:35:15
@AntonyHatchkins沒有理由。根據你的建議修正。謝謝 – leonbloy 2014-10-30 16:34:55