#定义一个表
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);