MariaDB(MySql)使用储存过程和随机函数插入10万条数据

复制代码
#定义一个表
create
table demo (id int , name varchar(100))default charset =utf8; #定义一个随机切割字符串的函数 delimiter // create function randStr() returns varchar(50) begin declare str varchar(30) default 'ASDFGHJKLZXCVBNMQWERTYUIOP'; return (substr(str,floor(1 + rand() * 26))); end // delimiter ; #查看自定义函数的返回值 select randStr();

#定义一个随机字符串的函数,int varchar int+varchar类型
# randStr(3,1) --> 返回 3 个 长度的字符的varhcar类型
复制代码
#判断 此函数存在不存在,存在删除。
drop
function if exists randStr;
#定义 语句 结束符 delimiter
// create function randStr(size int, type int )
#返回值的类型
returns varchar(50) begin declare i int default 0; # 循环的步数 declare str varchar(30) default 'ASDFGHJKLZXCVBNMQWERTYUIOP';#字符类型 declare num int default '1234567890'; #整数类型 declare str_num varchar(40) default ''; declare return_str varchar(255) default ''; #用一个变量 保存 将要返回的值
 #判断 type 的 传递进来的数值,给 str_num 赋值
set str_num = case type when 1 then str when 2 then num    else concat(str,num) end ;
 #循环截取内容
while i<size do   set i = i+1; set return_str = concat( return_str, substring(str_num, floor(length(str_num) * rand() + 1), 1) ); end while;
 #返回值  
return ( return_str ); end // delimiter ;
复制代码

#插入100000条数据 
delimiter //
create procedure insert_data(num int)
begin
    declare i int default 1 ;
    set autocommit = 0; #将事物关闭
    while i<=num do 
        set i =i+1;
        insert into demo values (i,concat(i,randStr()));
    end while;
commit ;
end //
delimiter ;
#调用存储过程
call insert_data(100000);
复制代码

 

posted @   追梦滴小蜗牛  阅读(997)  评论(0编辑  收藏  举报
编辑推荐:
· 理解Rust引用及其生命周期标识(下)
· 从二进制到误差:逐行拆解C语言浮点运算中的4008175468544之谜
· .NET制作智能桌面机器人:结合BotSharp智能体框架开发语音交互
· 软件产品开发中常见的10个问题及处理方法
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
阅读排行:
· C# 13 中的新增功能实操
· Ollama本地部署大模型总结
· 2025成都.NET开发者Connect圆满结束
· langchain0.3教程:从0到1打造一个智能聊天机器人
· 用一种新的分类方法梳理设计模式的脉络
点击右上角即可分享
微信分享提示