使用postgresql 模拟批量数据插入的案例
2021-01-12 15:09:33
创建表:
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),表示生成一个数值序列,从1到5000000,步进为一。
generate_series作用可见下表:
2、repeat: 重复生成字符串的函数
repeat(s,n)返回一个由重复的字符串s组成的字符串,n表示重复生成的次数。若n<=0,则返回一个空字符串;若s或n为null,则返回null。
3、
select (random()*(6^2))::integer :随机数字 十位不超过6的两位数
select (random()*(10^4))::integer; 四位数
结果:
补充: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()*(2*10^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;
以上为个人经验,希望能给大家一个参考,也希望大家多多支持IT技术网。如有错误或未考虑完全的地方,望不吝赐教。
您可能感兴趣的文章:
- postgreSQL数据库默认用户postgres常用命令分享
- postgresql修改完端口后直接psql连接数据库报错的解决
- postgresql数据库安装部署搭建主从节点的详细过程(业务库)
- 如何获取PostgreSQL数据库中的JSON值
- postgreSQL数据库的监控及数据维护操作
- PostgreSQL数据库中匿名块的写法实例
- SpringBoot连接使用PostgreSql数据库的方法
- PostgreSql 导入导出sql文件格式的表数据实例
- PostgreSQL upsert(插入更新)数据的操作详解
相关阅读
- postgresql 按小时分表(含触发器)的实现方式
- 解决postgreSql 将Varchar类型字段修改为Int类型报错的问题
- PostgreSQL 修改表字段常用命令操作
- PostgreSQL TIMESTAMP类型 时间戳操作
- postgresql 计算时间差的秒数、天数实例
- postgresql的now()与Oracle的sysdate区别说明
- postgresql 获取两个时间类型小时差值案例
- Postgresql 通过出生日期获取年龄的操作
- postgresql通过索引优化查询速度操作
- postgreSQL 非count方法算记录数操作
- PostgreSQL删除更新优化操作
- postgresql中时间转换和加减操作
- 在postgresql数据库中判断是否是数字和日期时间格式函数操作
- PostgreSQL 实现将多行合并转为列
- Postgresql自定义函数详解
- postgresql 实现sql多行语句合并一行
- PostgreSQL 分页查询时间的2种比较方法小结
- postgresql rank() over, dense_rank(), row_number()用法区别