mysql中循环插入数据--造测试数据

Posted 幸福在今天

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql中循环插入数据--造测试数据相关的知识,希望对你有一定的参考价值。

背景描述

测试需求:如上图,筛选按预约数排序靠前的机构,排名第51及之后的机构不显示。

 验证功能前,测试数据中至少有50个不同预约数,

实现方式:

1.或手工往数据库表中插入  ,50个机构下分别添加不同的预约数,要边添加、边记录预约数。

2.按某种规律生成数据,往数据库表中插入。

3.用sql语句循环写数据,(提前是找到规律)

---------------------------------------------------------------------------------------------------------------------

机构预约记录表 
id+1   用户id可以 不变      手机号可以不变           机构id (再给机构添加完预约数后,机构id要变化,即再给其他机构添加预约数)
1        623182                   15228*****64                     1            0        0        2018-06-14 18:33:44    2018-06-14 18:33:44


 

 

#DELIMITER # 
CREATE PROCEDURE test_fi()
BEGIN 
	DECLARE  id int default  2384;            #主键 #
	declare  institition_id int  default 978; #机构id#
	declare  num int  default 100;    #为N个机构创建预约记录,每个机构的预约数为N#
	declare  temp int default 0;      #temp被赋值为N,为机构创建N条预约数#

	#为N个机构创建预约记录,每个机构的预约数为N#
	while num>0 DO			
		SET temp=num;
		while temp>0 DO
			insert into reservation_apply values(id,\'722619\',\'13513111311\',institition_id,\'\',\'\',0,\'\',0,\'\',\'2018-6-30 14:47:51\',\'2018-6-30 14:47:58\');
			set id=id+1;
			SET temp=temp-1;			
		end WHILE;
		set num=num-5;
		SET institition_id = institition_id-5;
		END WHILE;	

END 

CALL test_fi();

# insert into reservation_apply values(2224,\'722619\',\'13511111111\',100,\'\',\'\',0,\'\',0,\'\',\'2018-6-30 14:47:51\',\'2018-6-30 14:47:55\'); 运行结果是ok的#

 关于mysql的存储过程,这还是冰山一角,还要继续学习。

 

测试时按第1种方式造的数据,后期按第3种方式造数据,这个对比太明显了,省时省力多了。

以上是关于mysql中循环插入数据--造测试数据的主要内容,如果未能解决你的问题,请参考以下文章

面试题:如何造10w条测试数据,在数据库插入10w条不同数据

性能测试造数据:循环注册

用oracle存储过程将一张表的数据查出插入另一张表

用oracle存储过程将一张表的数据查出插入另一张表

mysql存储过程怎样批量插入数据

mysql写存储过程对单表插入测试数据,出问题