-- 创建函数前,设置 set global log_bin_trust_function_creators=TRUE;
-- 新建函数-产生随机的字符串
drop function if exists rand_str;
delimiter ##
create function rand_str(n int) returns varchar(255)
begin declare chars_str varchar(100) default 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';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 ##
delimiter ;-- 新建函数-产生随机的整数
drop function if exists rand_num;
delimiter ##
create function rand_num() returns int
begin declare i int default 0;set i=floor(100+rand()*10);return i;
end ##
delimiter ;-- 创建存储过程,函数没法单独被调用,只能通过存储过程进行调用;
-- 新建存储过程-调用函数批量插入数据
drop procedure if exists insert_emp;
delimiter ##
create procedure insert_emp(in start_num int, in max_num int)
begin declare i int default 0;set autocommit=0;repeat set i=i+1;INSERT INTO mybatis.emp_tbl (emp_id, dept_id, name)VALUES(rand_num(), rand_num(), rand_str(20));until i = max_numend repeat;commit;
end ##
delimiter ;-- 批量插入10万条数据以进行压力测试
call insert_emp(0, 100000)
;