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种方式造数据,这个对比太明显了,省时省力多了。????

原文地址:https://www.cnblogs.com/ww-xiaowei/p/9254340.html

时间: 2024-08-13 01:01:43

mysql中循环插入数据--造测试数据的相关文章

向mysql中批量插入数据的性能分析

MYSQL批量插入数据库实现语句性能分析 假定我们的表结构如下 代码如下   CREATE TABLE example (example_id INT NOT NULL,name VARCHAR( 50 ) NOT NULL,value VARCHAR( 50 ) NOT NULL,other_value VARCHAR( 50 ) NOT NULL) 通常情况下单条插入的sql语句我们会这么写: 代码如下   INSERT INTO example(example_id, name, valu

oracle存储过程中循环插入数据

//oracle 循环插入数据 procedure Insert_WData( p_CODE1 ao_model.code1%type, p_BRANDID ao_model.brandid%type, p_CODE varchar2, p_CONF_VAL varchar2, p_DESC varchar2, p_CODE2 varchar2, p_DESC varchar2, ErrOut in out varchar2) is begin --参数 declare startpositio

Mysql向表中循环插入数据

今天学习Mysql,做实验时想向一个标准插入1000行数据,在oracle中类似于这样 begin for i in 1..1000 loop insert .. end loop; end; / 但是Mysql中不支持匿名块 百度了一下,方法如下: 首先设置delimiter delimiter的作用:告诉解释器,这段命令是否已经结束了,mysql是否可以执行了 默认情况下,delimiter是':'但是当我们编写procedure时,如果是默认设置,那么一遇到':',mysql就要执行,这是

mysql中迅速插入百万条测试数据的方法

对比一下,首先是用 mysql 的存储过程弄的: 复制代码代码如下: mysql>delimiter $ mysql>SET AUTOCOMMIT = 0$$ mysql> create procedure test() begin declare i decimal (10) default 0 ; dd:loop INSERT INTO `million` (`categ_id`, `categ_fid`, `SortPath`, `address`, `p_identifier`,

mysql:insert插入数据过慢如何解决,设置innodb_flush_log_at_trx_commit为0就能解决

问题: 最近在做性能测试,造数据,发现insert好慢,只有几十条每秒,很奇怪,最后再网上找到了原因. 网文如下: MY SQL insert 速度过慢 最近在用MySQL做存储,测试中发现插入数据太慢了,插入速度只有20-30 条/秒,后来查资料后,将MySQL的1个参数:innodb_flush_log_at_trx_commit,1改为了0(修改方法,可以直接修改my.ini(windows)/my.cnf(linux)中的对应参数,似乎用命令直接设置没有效果),插入速度就提升到了3000

MySQL中快速复制数据表方法汇总

本文将着重介绍两个MySQL命令的组合,它将以原有数据表为基础,创建相同结构和数据的新数据表. 这可以帮助你在开发过程中快速的复制表格作为测试数据,而不必冒险直接操作正在运行 的数据表. 示例如下: 将 production 数据库中的 mytbl 表快速复制为 mytbl_new,2个命令如下: CREATE TABLE mytbl_new LIKE production.mytbl; INSERT mytbl_new SELECT * FROM production.mytbl; 第一个命令

在表中循环插入日期

在表中循环插入日期 --创建会话级临时表 create global temporary table rq(id number primary key ,sj varchar2(20)) on commit preserve rows select * from rq --循环插入日期 declare c_i number :=1; v_i number ; v_firstday varchar2(20); v_lastday varchar(20); begin select to_char(

vc 在edit控件中动态插入数据滚动显示

内存从网上论坛摘抄整理 思路:给控件设置多行属性,设置垂直滚动条,Auto Vscroll设置为true,放入文本后把插入点设置到末尾 pEdit->LineScroll(pEdit->GetLineCount()); 滚动条滚动到最下端 int len  = pEdit->GetWindowTextLength(); pEdit->SetSel(len,-1,true); //定位光标到内容末尾pEdit->ReplaceSel("12121212");

MySQL中如何插入反斜杠,反斜杠被吃掉,反斜杠转义(转)

MySQL中如何插入反斜杠,反斜杠被吃掉,反斜杠转义 问题描述:mysql中带有反斜杠的内容入库后,发现反斜杠无故失踪了(俗话说被吃掉了) 例:插入insert into tb('url') values('absc\eeee'); 结果数据库里的内容是:absceeee(反斜杠没了呢) 这么详细了相信大家都搞清楚问题了吧,下面看解决方案. 解决方案:用addslashes(),mysql_escape_string()等函数进行处理,也就是在插入数据库前,把内容处理一下  如:$cc = ad