您的位置:首页 > 数据库 > MySQL

【MySQL】关于批量增加测试数据的解决办法

2017-10-17 09:54 302 查看
      我在测试数据库查询效率的时候,发现数据量过小而查询时间都是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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐