使用postgresql 模擬批量數(shù)據(jù)插入的案例
創(chuàng)建表:
CREATE TABLE t_test( ID INT PRIMARY KEY NOT NULL, NAME TEXT NOT NULL, AGE INT NOT NULL, ADDRESS CHAR(50), SALARY REAL );
模擬批量插入:
insert into t_test SELECT generate_series(1,5000000) as key,repeat( chr(int4(random()*26)+65),4), (random()*(6^2))::integer,null,(random()*(10^4))::integer;
解釋:
其中:
1、generate_series(1,5000000),表示生成一個(gè)數(shù)值序列,從1到5000000,步進(jìn)為一。
generate_series作用可見下表:
2、repeat: 重復(fù)生成字符串的函數(shù)
repeat(s,n)返回一個(gè)由重復(fù)的字符串s組成的字符串,n表示重復(fù)生成的次數(shù)。若n<=0,則返回一個(gè)空字符串;若s或n為null,則返回null。
3、
select (random()*(6^2))::integer :隨機(jī)數(shù)字 十位不超過(guò)6的兩位數(shù)
select (random()*(10^4))::integer; 四位數(shù)
結(jié)果:
補(bǔ)充:postgresql 生成測(cè)試數(shù)據(jù)
此處,我簡(jiǎn)單的寫一個(gè)例子,供參考(在Postgresql9.1下面做的):
(1)準(zhǔn)備知識(shí)
針對(duì) Postgres生成數(shù)據(jù)方法
生成序列
SELECT * FROM generate_series(1,5);
生成date
SELECT date(generate_series(now(), now() + '1 week', '1 day'));
生成integer 隨機(jī)數(shù)
SELECT (random()*(2*10^9))::integer;
生成numeric 隨機(jī)數(shù)
SELECT (random()*100.)::numeric(4,2);
生成字符串
SELECT substr('abcdefghijklmnopqrstuvwxyz',1,(random()*26)::integer);
生成重復(fù)串
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();
結(jié)果:
-- 生成隨機(jī)漢字符串 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;
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章
PostgreSQL 設(shè)置允許訪問(wèn)IP的操作
這篇文章主要介紹了PostgreSQL 設(shè)置允許訪問(wèn)IP的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-12-12Debian中PostgreSQL數(shù)據(jù)庫(kù)安裝配置實(shí)例
這篇文章主要介紹了Debian中PostgreSQL數(shù)據(jù)庫(kù)安裝配置實(shí)例,一個(gè)簡(jiǎn)明教程,需要的朋友可以參考下2014-06-06使用PostgreSQL數(shù)據(jù)庫(kù)進(jìn)行中文全文搜索的實(shí)現(xiàn)方法
目前在PostgreSQL中常見的兩個(gè)中文分詞插件是zhparser和pg_jieba,這里我們使用zhparser,插件的編譯和安裝請(qǐng)查看官方文檔 ,安裝還是比較復(fù)雜的,建議找個(gè)現(xiàn)成docker鏡像,本文給大家介紹了在PostgreSQL數(shù)據(jù)庫(kù)使用中文全文搜索,需要的朋友可以參考下2023-09-09PostgreSQL 禁用全表掃描的實(shí)現(xiàn)
這篇文章主要介紹了PostgreSQL 禁用全表掃描的實(shí)現(xiàn)操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-01-01