mysql批量准备测试数据3种方式-存储过程

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

因目前在测试数据相关的内容,涉及到使用mysql作为数据源,同时又没有相关的业务数据可以落库,故需要自己手动造一些测试数据来满足当前的测试场景,本篇接上一篇mysql 数据的导入导出,该篇章主要介绍使用mysql简单的存储结构进行数据的构造。


一、使用简单的存储过程实现测试数据创造

试用场景:适用测试数据复杂度不高,字段个数较少的情况,该方法数据写入速度还算客观,该示例存在string 和 int 两种数据同类型, 同时其他数值类型的数据变换规则与 int 高度类似,可参考。

二、操作步骤

1. 新建测试表

新建表bath_table08,相关字段和数据类型如下:

CREATE TABLE auto01.`bath_table07` (
  `user_name` varchar(50) NOT NULL,
  `click_url` varchar(50) NOT NULL,
  `ts` bigint NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='数据导入测试';

2. 编写存储过程

代码如下(示例):

DROP PROCEDURE IF EXISTS proc_batch_insert111;
CREATE PROCEDURE proc_batch_insert111()
BEGIN
DECLARE i INT;
DECLARE user_name1 varchar(250);
DECLARE click_url1 varchar(250);
SET i=1;
SET user_name1 = 'Cloudwise';
SET click_url1 = 'http://www.tao.cn/list/search/';
WHILE i<6 DO
    INSERT INTO auto.bath_table07(user_name,click_url,ts)VALUES(user_name1,click_url1,i);
   	SET user_name1 = 'Cloudwise';
	SET click_url1 = 'http://www.tao.cn/list/search/';
SET i=i+1;
SET user_name1 = CONCAT(user_name1,i);
SET click_url1 = CONCAT(click_url1,i);
END WHILE;
END

存储过程解释:

  1. 首行:DROP ,判断是否存在存储过程,如果有删除。
  2. DECLARE 定义局部变量,所有用的变量都需要先定义才能使用
  3. SET 跟相关变量初始值,
  4. while 循环, 根据 设置 i 的最大循环值,来决定数据变写入的数据量。
  5. insert into 语句中的value 中,使用变量值进行数据写入,可以写入不同数据,如需要写入相同数据,不实用变量值,写死即可,如下:
CREATE PROCEDURE proc_batch_insert()
BEGIN
DECLARE i INT;
SET i=1;
WHILE i<6 DO
    INSERT INTO auto.bath_table07(user_name,click_url,ts)VALUES("user_name1","click_url1",i);
SET i=i+1;
END WHILE;
END
  1. insert 下面的 两个set 为重置初始值,避免数据无限延长。
  2. CONCAT 为拼接函数。
    提示:在定义vachar 类型变量时,应加上数据长度,不然会报错。

3. 调用存储过程,向数据表中插入数据

CALL proc_batch_insert111;

4. 结果验证以及生成规律

在这里插入图片描述

总结

至此,使用mysql存储过程成功批量写入数据成功,希望对小伙伴们有所帮助,如果需要创造较为复杂的测试数据,就需要使用相关编程语言去造数据了,下一篇文章,会讲到使用python 脚本造数据。

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用MySQL存储过程补充数据,你可以创建一个存储过程。首先,创建存储过程"insert_aa",该过程接受两个参数:START和max_num。其中,START是起始值,max_num是要插入的数据的数量。在存储过程中,你可以使用两个自定义函数来生成随机数字和随机字符串,分别是"RAND_number"和"RAND_str"。 在存储过程中,使用循环语句来重复插入数据。首先设置一个计数器变量i为0,然后开始一个重复循环。在循环中,每次执行插入操作并将计数器加1,直到计数器等于max_num时结束循环。插入操作使用INSERT INTO语句将随机生成的数据插入到表aa中的相应列中。完成所有插入操作后,使用COMMIT语句提交事务。最后,设置autocommit为0来关闭自动提交。 使用这个存储过程,你可以补充MySQL表aa中的数据。调用存储过程时,传入起始值和要插入的数据数量即可。例如,调用"insert_aa(1, 100)"将在表aa中插入100条数据,起始值为1。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [MySQL存储过程批量数据实现压力测试](https://blog.csdn.net/m0_56786541/article/details/126008920)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [基于Django+node.js+MySQL+杰卡德相似系数智能新闻推荐系统-机器学习算法应用(含Python源码)+数据集](https://download.csdn.net/download/qq_31136513/88285126)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值