用存储结构向表中一次插入一百万条数据

首先创建Users表,写存储过程用while循环插入数据。(concat()函数链接两个字符串)

1.第一种(我只用了一个while循环,等待时间长)

创建Users表:

代码:

7f44f4da1325d25b8eba2ce485a85f51.png

写存储过程:

代码:

delimiter $$

drop procedure if exists Pro_insert $$

create procedure Pro_insert(in loop_times int)

begin

set @counts = 1;

while @counts = 1 do

insert into Users values (null,concat('UserName',@counts),23,0,concat('tele',@counts),concat('Email',@counts),concat('23423435',@counts));

set @counts = @counts + 1;

end while;

end $$

delimiter ;

调用:

call Pro_insert(1000000);

2.第二种(用两个while分拨插入,会比较快一点)

delimiter $$

Drop procedure if exists insert_infor $$

create procedure insert_infor(in n int,in c int)

BEGIN

set @num=1,@counts=1;

while @num <= n do

while @counts <=c do

insert into Users values (null,concat('UserName',@counts),23,0,concat('tele',@counts),concat('Email',@counts),concat('23423435',@counts));

set @counts = @counts + 1;

end while;

set @counts=1;    #一定要把@counts置为1,否则内层while只循环一次。

set @num = @num + 1;

end while;

END $$

delimiter ;

调用:

call insert_infor(1000,1000);

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐