微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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 脚本造数据。

原文地址:https://www.jb51.cc/wenti/3281074.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐