生成随机字符+数字的存储过程

简介: 需求内容是生成固定长度的字符串,首位必须是指定数字开头。实现的存储过程和函数如下: CREATE DEFINER=`root`@`localhost` PROCEDURE `proc_data`(IN iteme INT) BEGIN DECLARE var INT DEFA...
需求内容是生成固定长度的字符串,首位必须是指定数字开头。实现的存储过程和函数如下:
CREATE DEFINER=`root`@`localhost` PROCEDURE `proc_data`(IN iteme INT)
BEGIN
DECLARE var INT DEFAULT 1;
start transaction;
WHILE var<iteme
DO
insert into table (col1,col2,col3,col4) values (rand_string(10),1001,'2015-07-10 16:00:00',0);
SET var=var+1;
END WHILE;
commit;
END


CREATE  FUNCTION `rand_string`(n int) RETURNS varchar(255) CHARSET utf8
BEGIN      
DECLARE chars_str varchar(100) DEFAULT 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';      
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()*62 ),1));        
SET i = i +1;      
END WHILE;        
RETURN return_str;    
END 
函数为网上找的的版本:http://xue.uplook.cn/database/mysqlsjk/2392.html

直接call proc_data(6);即可

bug1:生成大量数据时唯一键冲突较多,目前解决办法是多次运行。 o(╯□╰)o
bug2 : 生成字符串会有小于指定位数的,例如需要生成的随机数是10位,可能有4位,5位,6位的出现.
         ps:bug2已找到原因,在生成手机使用的随机符时,为了方便辨认,去掉了数字1和字母I,于是chars_str的长度由62缩小为60.在运算时需要将函数FLOOR(1 + RAND()*62也进行相应的修改,即FLOOR(1 + RAND()*60.


相关文章
|
存储 Unix Linux
Linux 下文件和目录的本质区别和组成
Linux 下文件和目录的本质区别和组成
780 0
|
5月前
|
弹性计算 搜索推荐 应用服务中间件
最新版:阿里云服务器收费价格表一年、1个月和1小时费用标准清单
2025年阿里云服务器最新优惠价格表出炉!轻量应用服务器低至38元/年起,ECS云服务器2核2G仅99元/年,4核16G 89元/月,8核32G 160元/月,香港轻量服务器25元/月起,带宽高达200M,不限流量,新老用户同享,续费同价,限时秒杀,性价比极高。
|
SQL Java 数据库连接
【mybatis】第一篇,Springboot中使用插件PageHelper不生效解决方案
【mybatis】第一篇,Springboot中使用插件PageHelper不生效解决方案
|
存储 数据采集 监控
云上数据安全保护:敏感日志扫描与脱敏实践详解
随着企业对云服务的广泛应用,数据安全成为重要课题。通过对云上数据进行敏感数据扫描和保护,可以有效提升企业或组织的数据安全。本文主要基于阿里云的数据安全中心数据识别功能进行深入实践探索。通过对商品购买日志的模拟,分析了如何使用阿里云的工具对日志数据进行识别、脱敏(3 种模式)处理和基于 StoreView 的查询脱敏方式,从而在保障数据安全的同时满足业务需求。通过这些实践,企业可以有效降低数据泄漏风险,提升数据治理能力和系统安全性。
|
10月前
|
NoSQL JavaScript Java
基于 RuoYi-Vue-Pro 定制了一个后台管理系统 , 开源出来!
从职业生涯伊始,我一直是微服务架构的坚定拥趸,这很大程度上源于长期深耕互联网行业,习惯了高并发、分布式架构下的开发模式。 然而,去年在优化某航空公司核心用户中心系统时,我的技术认知受到了不小的冲击。 因为航空公司用户中心是一个典型的单体应用——尽管业务量不小,但稳定的业务模型和有限的扩展需求,使得单体架构反而比微服务更高效、更经济。
基于 RuoYi-Vue-Pro 定制了一个后台管理系统 , 开源出来!
Vue2时间轴(横向)
该横向时间轴组件 `HorizonTimeLine` 可自定义时间轴数据 (`timelineData`) 和初始选中年份 (`activeYear`)。通过点击不同的年份,可以改变当前激活的年份,并有相应的视觉反馈。该组件支持均匀自适应排列,且易于在其他页面中引入和使用。
1415 0
Vue2时间轴(横向)
|
SQL 监控 数据库
如何解决 SQL Server 占用内存过多问题
SQL Server 占用过多内存会导致响应缓慢和查询性能低下。解决流程包括:1) 查看内存使用情况,2) 分析各数据库内存占用,3) 优化 SQL Server 配置(如限制最大内存),4) 优化查询(如创建索引),5) 持续监控效果。通过这些步骤可有效控制内存占用,提升系统性能。
1494 0
|
Linux 网络安全 数据安全/隐私保护
Linux系统之Centos7安装cockpit图形管理界面
【10月更文挑战第12天】Linux系统之Centos7安装cockpit图形管理界面
746 1
Linux系统之Centos7安装cockpit图形管理界面
|
运维 网络安全
解决ssh: connect to host IP port 22: Connection timed out报错(scp传文件指定端口)
通过这些步骤和方法,您可以有效解决“ssh: connect to host IP port 22: Connection timed out”问题,并顺利使用 `scp`命令传输文件。
15418 7
|
存储 人工智能 缓存
[AI Kimi] Context Caching 正式公测,推动长文本模型降本 90%
Kimi 的上下文缓存(Context Caching)技术正式公测。该技术通过预先存储数据,显著降低了计算成本和延迟,适用于长文本模型,帮助节省高达 90% 的费用,并将首 Token 延迟降低 83%。
1358 1

热门文章

最新文章