我在测试数据库查询效率的时候,发现数据量过小而查询时间都是0.000 sec,所以就想多插已一些测试数据,但是由于设置了主键自动增长,又不可能手动修改主键,咨询同事以 及自己尝试后,发现可以通过声明一个存储过程,然后通过调用这个存储过程来达到目的,具体实现如下:
--声明存储过程,用于批量增加数据
delimiter &&
create procedure p1()
begin
declare num int;
set num=103; --你数据库表当前最大ID+1后的值
while num <= 10000 do --当小于10000时,现在若从200开始,则添加的是800条数据
insert into t_billtool_usage_copy values(num, 'MX', 'account10013001572', 'CSB_D_a190f8d5e9d647b2b673d381497e52b7', 'Sa Chile 1', 'sa-chile-1a', 'Elastic Cloud Server', 'VM', 'c1.medium.linux', 'ffffffff-ed1c-ffff-fffc-fffffffffffc', '46800.0', 'Second', 'Duration', '2017-09-24 00:00:00 GMT+00:00', '2017-09-24 23:59:59 GMT+00:00', '', '0.7627731095703124', '0.009916050424414062', '50.29', '0.49867817584378316');
set num=num+1;ID++
end while;--结束循环
end&&
delimiter ;
call p1;
其中delimiter &&和delimiter ;这两句语句我之前并没有加上,所以导致存储过程声明未成功,再查看这位博主的文章后,发现要加上这个两条分隔符的声明,目的是在定义前把默认的:声明为其他比如说&&,这样存储过程中定义的:就不会被认为是语句结束,否则会直接提交。定义完后还要把默认的:还原回来。以下是参考的博文地址:http://blog.csdn.net/qq_26525215/article/details/52143733?locationNum=4&fps=1