首页 > 数据库技术 > 详细

Mysql 存储过程 插入100W条数据

时间:2020-11-06 15:55:39      阅读:46      评论:0      收藏:0      [点我收藏+]

drop procedure insert_rand_tkt_num_01;
-- 插入100W条数据
delimiter $$
create procedure insert_rand_tkt_num_01(vv_num INT ) -- vv_num 需生成的随机数条数
begin
declare i int default 0;
declare count int default 0;

/insert ignore into 有就不插入,没有就插入/
set @exesql = concat("insert ignore into rand_tkt_num(number_id) values ");
set @exedata = "";

set i =0, count =0;
WHILE count< vv_num DO
set @exedata = concat(@exedata, ",(CEILING(RAND()*9000000 + FLOOR(1 + (RAND() * 5)) * 10000000))");
set count=count+1;
set i=i+1;

/1000条数据组合在一起/
if i%1000=0
then
set @exedata = SUBSTRING(@exedata, 2);
set @exesql = concat("insert ignore into rand_tkt_num(number_id) values ", @exedata);
prepare stmt from @exesql;
execute stmt;
DEALLOCATE prepare stmt;
set @exedata = "";

end if;

end WHILE;

if length(@exedata)>0 then
set @exedata = SUBSTRING(@exedata, 2);
set @exesql = concat("insert ignore into rand_tkt_num(number_id) values ", @exedata);
/* set @exesql = concat("select "", @exesql, "" from dual"); */
prepare stmt from @exesql;
execute stmt;
DEALLOCATE prepare stmt;
end if;
commit;
end $$

Mysql 存储过程 插入100W条数据

原文:https://www.cnblogs.com/iforrest/p/13936987.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!