用存储结构向表中一次插入一百万条数据
首先创建Users表,写存储过程用while循环插入数据。(concat()函数链接两个字符串)
1.第一种(我只用了一个while循环,等待时间长)
创建Users表:
代码:
写存储过程:
代码:
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);