此處,我簡單的寫一個例子,供參考(在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之表與檔案之間的拷貝