天天看點

postgresql 生成測試資料

此處,我簡單的寫一個例子,供參考(在Postgresql9.1下面做的):

(1)準備知識

針對 Postgres生成資料方法

生成序列

SELECT * FROM generate_series(1,5);

生成date

SELECT date(generate_series(now(), now() + '1 week', '1 day'));

生成integer 随機數

SELECT (random()(210^9))::integer;

生成numeric 随機數

SELECT (random()*100.)::numeric(4,2);

生成字元串

SELECT substr('abcdefghijklmnopqrstuvwxyz',1,(random()*26)::integer);

生成重複串

SELECT repeat('1',(random()*40)::integer);

舉例:

SELECT generate_series(1,10) as key,(random()100.)::numeric(4,2),repeat('1',(random()25)::integer) ORDER BY random();

結果:

-- 生成随機漢字元串

create or replace function gen_hanzi(int) returns text as

$$

declare

res text;

begin

if $1 >=1 then

select string_agg(chr(19968+(random()*20901)::int), '') into res from generate_series(1,$1);

return res;

end if;

return null;

end;

language plpgsql strict;

Postgresql生成大量測試資料

Postgresql快速寫入/讀取大量資料(.net)

PostgreSQL 如何實作批量更新、删除、插入

postgresql----COPY之表與檔案之間的拷貝

繼續閱讀