前言
因目前在测试数据相关的内容,涉及到使用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
存储过程解释:
- 首行:DROP ,判断是否存在存储过程,如果有删除。
- DECLARE 定义局部变量,所有用的变量都需要先定义才能使用
- SET 跟相关变量初始值,
- while 循环, 根据 设置 i 的最大循环值,来决定数据变写入的数据量。
- 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
3. 调用存储过程,向数据表中插入数据
CALL proc_batch_insert111;
4. 结果验证以及生成规律
总结
至此,使用MysqL存储过程成功批量写入数据成功,希望对小伙伴们有所帮助,如果需要创造较为复杂的测试数据,就需要使用相关编程语言去造数据了,下一篇文章,会讲到使用python 脚本造数据。
原文地址:https://www.jb51.cc/wenti/3281074.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。