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

简介: 需求内容是生成固定长度的字符串,首位必须是指定数字开头。实现的存储过程和函数如下: 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.


相关文章
|
16天前
|
人工智能 数据可视化 机器人
OpenClaw一键部署攻略,手把手教你 “养龙虾”!
还在为部署OpenClaw踩坑发愁?“养龙虾”其实超简单!本文奉上阿里云一键云端部署攻略:全程可视化、零代码,仅两步——买预装服务器+填API密钥,5分钟即可拥有专属AI数字员工!支持微信/钉钉协同、文件处理、日程管理、代码辅助等,新手友好,成本低廉(新用户首月9.9元+7000万Token免费额度)。
383 25
|
SQL Java 数据库连接
【mybatis】第一篇,Springboot中使用插件PageHelper不生效解决方案
【mybatis】第一篇,Springboot中使用插件PageHelper不生效解决方案
|
存储 数据采集 监控
云上数据安全保护:敏感日志扫描与脱敏实践详解
随着企业对云服务的广泛应用,数据安全成为重要课题。通过对云上数据进行敏感数据扫描和保护,可以有效提升企业或组织的数据安全。本文主要基于阿里云的数据安全中心数据识别功能进行深入实践探索。通过对商品购买日志的模拟,分析了如何使用阿里云的工具对日志数据进行识别、脱敏(3 种模式)处理和基于 StoreView 的查询脱敏方式,从而在保障数据安全的同时满足业务需求。通过这些实践,企业可以有效降低数据泄漏风险,提升数据治理能力和系统安全性。
|
9月前
|
NoSQL JavaScript Java
基于 RuoYi-Vue-Pro 定制了一个后台管理系统 , 开源出来!
从职业生涯伊始,我一直是微服务架构的坚定拥趸,这很大程度上源于长期深耕互联网行业,习惯了高并发、分布式架构下的开发模式。 然而,去年在优化某航空公司核心用户中心系统时,我的技术认知受到了不小的冲击。 因为航空公司用户中心是一个典型的单体应用——尽管业务量不小,但稳定的业务模型和有限的扩展需求,使得单体架构反而比微服务更高效、更经济。
基于 RuoYi-Vue-Pro 定制了一个后台管理系统 , 开源出来!
|
Linux 网络安全 数据安全/隐私保护
Linux系统之Centos7安装cockpit图形管理界面
【10月更文挑战第12天】Linux系统之Centos7安装cockpit图形管理界面
694 1
Linux系统之Centos7安装cockpit图形管理界面
|
存储 算法 中间件
每日 3000万订单的社区电商要如何分库分表
文章首先介绍了分库分表的基本概念,包括分库、分表及其组合形式,并详细解释了水平切分、垂直切分和混合切分的方式。接着分析了分库分表的原因,如解决性能瓶颈、微服务化需求等。文章还讨论了分库分表的常见问题,如调试难度、分布式事务和跨库查询等,并介绍了分库分表工具的客户端模式和代理模式。最后,通过一个社区电商的真实案例,详细展示了分库分表的具体落地过程,包括评估库表总数、选择分库分表字段等关键步骤。
583 5
|
安全 网络安全 Windows
电脑插上U盘不显示怎么回事?怎么解决?
平时使用电脑的时候经常会使用U盘来传输数据或是备份文件,有时候会遇到一个令头疼的问题,比如,将U盘插入电脑的USB口后,设备却显示不出来。电脑上插入U盘后却不显示会影响我们的正常工作。接下来,我们一起分析一下故障的原因和常见的解决方法。
|
存储 人工智能 缓存
[AI Kimi] Context Caching 正式公测,推动长文本模型降本 90%
Kimi 的上下文缓存(Context Caching)技术正式公测。该技术通过预先存储数据,显著降低了计算成本和延迟,适用于长文本模型,帮助节省高达 90% 的费用,并将首 Token 延迟降低 83%。
1307 1
|
Java
【Java】获取中文首字母
获取中文首字母 有时候,比如微信上根据名字拼音首字母排序并检索。那么用Java获取中文首字母是怎么实现的呢? 代码 不多说,直接上代码:(写个工具类) public class FirstCharUtil { // 简体中文的编码范围从B0A1...
4760 0