mysql批量插入数据的函数和存储过程

-- 创建函数前,设置 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_num
	end repeat;
	commit;
end ## 
delimiter ;

-- 批量插入10万条数据以进行压力测试
call insert_emp(0, 100000)
;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值