MySql大批量生成测试数据


*以下sql均使用于 mysql5.7 和 mysql8.0 *

函数准备

随机生成某个范围内的数字

【创建SQL】

create function generateNum(min int,max int) returns int
begin
    return floor(min+rand()*(max+1));
END 

【使用SQL】

## 生成10-100之间的随机数
SELECT generateNum(10,91);

随机生成指定长度的英文字符串

【创建SQL】

set global log_bin_trust_function_creators=TRUE;
create function generateStr(n int) returns varchar(255)
begin
    declare chars_str  varchar(100) default 'abcdefghigklmnopqrstuvwxyzABCDEFGHIGKLMNOPQRSTUVWXYZ';
    declare return_str varchar(255) default '';
    declare i int default 0;
    while (i < n) do
        set return_str = concat(return_str,substring(chars_str,floor(1+rand()*52),1));
        set i = i+1;
    end while;
    return return_str;
END 

【使用SQL】

## 传参为指定字符串长度
select generateStr(5); 

随机生成中文名

【创建SQL】

## 使用时,所在数据的编码需要设置为utf8,涉及到的表也为utf8,编码格式保持一致
CREATE FUNCTION `generateName`() RETURNS varchar(255) CHARSET utf8 DETERMINISTIC
BEGIN -- 开始
  DECLARE xing VARCHAR (2056) DEFAULT '赵钱孙李周郑王冯陈楮卫蒋沈韩杨朱秦尤许何吕施张孔曹严华金魏陶姜谢喻柏水贺罗毕安常乐于黄和穆萧尹姚邵湛汪宋茅屈林胡丁陆荣'; -- 定义姓
  DECLARE ming VARCHAR (2056) DEFAULT '嘉轩烨伟苑博伟泽熠彤鸿煊博涛烨霖烨华煜祺智宸正豪昊然明杰诚立轩立辉峻熙弘文熠彤鸿煊烨霖哲瀚鑫鹏致远俊驰雨泽烨磊晟睿天佑文昊修洁黎昕远航旭尧鸿涛伟祺轩越泽浩宇瑾瑜皓轩擎苍擎宇志泽睿渊楷瑞轩弘文哲瀚雨泽鑫磊梦琪忆桃慕青问兰尔岚元香初夏沛菡傲珊曼文乐菱痴珊玉惜文香寒新柔语蓉海安夜蓉涵柏水桃醉蓝春儿语琴从彤傲晴语兰菱碧彤元霜怜梦紫寒妙彤曼易南莲紫翠雨寒易烟如萱若南寻真晓亦向珊慕灵以蕊寻雁映易雪柳孤岚笑霜海云凝天沛珊寒云冰旋宛儿绿'; -- 定义名
  DECLARE I_xing INT DEFAULT LENGTH(xing) 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小妖云汐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值