我是靠谱客的博主 老迟到项链,最近开发中收集的这篇文章主要介绍Navicat for MySQL 函数 存储过程 遍历创建大量复杂结构测试数据,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

需求说明:

测试接口时需要造数据,由于数据层次比较复杂导致数量较大,手动添加比较困难,所以就建了一个存储过程函数,来遍历插入数据。

 

工具 Navicat for MySQL

1、这里使用的Navicat  所以先安装Navicat 并连接到你想有创建函数的数据库

2、新建函数

***注意****

由于软件版本不同 步骤稍有差别,以下第3、4部是我用window时 老版本的navicat需要选择这两部,现在用mac版的 版本貌似比较新,直接就进入第5步了。如果你直接进入第5部  直接进行编辑即可,就像写java、scala等一样写一个function就好了,只是语法有所不同而已。

3、选择过程

4、设置添加参数,如选择IN指的是调用此函数时传入的参数名以及类型,out为返回值........

5、在以下对应位置修改和填写自己需要的内容,我们只需要写方法名,参数列表,函数体 就ok了

填写完函数内容保存即可

示例:以下是我创建之后的语句

注:其中 第一句中的DEFINER=`root`@`%`  是创建语句时DEFINER = CURRENT_USER 自动获取替换登录用户后生成的,不需要自己修改。

CREATE DEFINER=`root`@`%` PROCEDURE `MakeData_dm_f_activity_analysis_hour`()
BEGIN
DECLARE dataType int;#声明变量(有些变量需要添加长度限制才能正常保存函数)
DECLARE grading int;
DECLARE gradTime VARCHAR(11);#声明变量(有些变量需要添加长度限制才能正常保存函数)
DECLARE sumCount int;
DECLARE inputDate VARCHAR(11);
set inputDate='2018-05-01';#需要造那天的数据修改此处即可
set dataType=1;
set grading=0;
WHILE grading<24 do
#插入数据的多少
set sumCount=RAND()*1000;
#随机函数 RAND()生成的是0~1之间的小数,乘以多少就可以放大多少倍,如起点不是0,则加上起点数 如20~80:RAND()*60+20
if (grading<10) then
set gradTime = CONCAT('0',grading,':00');
else
set gradTime =CONCAT(grading,':00');
end if;
#5个数据类型 和24个小时遍历生成数据,组合七个固定生命周期插入
INSERT INTO `bg_webAnalysis`.`dm_f_activity_analysis_hour`(`id`, `tenant_id`, `activity_id`, `type`, `data_type`, `sum_target`, `data_hour`, `created_at`, `updated_at`, `created_by`, `updated_by`, `publish_status`, `input_date`) VALUES (null, 1, 1, 1, dataType, sumCount, gradTime, '2018-05-21 14:51:34', '2018-05-21 14:51:40', 123123, 3213123, 1, inputDate);
if (dataType<5) then
set dataType= dataType+1;
elseif (dataType=5) then
set grading=grading+1;
set dataType= 1;
end if;
END WHILE;
END;

此处是造数,所以无需参数和返回值。

 

注意事项/语法:

1、DECLARE 用来声明变量。但是有些变量需要添加长度限制才能正常保存函数。

2、set 用给变量赋值

3、WHILE do END WHILE; 来循环

4、条件用if语句

if (dataType<5) then
set dataType= dataType+1;
elseif (dataType=5) then
set grading=grading+1;
set dataType= 1;
end if;

但是此处注意elseif 要连起来写。

5、CONCAT(str1,str2,str3,......'); 函数用来拼接字符串

6、RAND()生成0~1的数据数(与java等类似)可以*1000 再赋给int即可产生,0~1000的随机整数

 

最后

以上就是老迟到项链为你收集整理的Navicat for MySQL 函数 存储过程 遍历创建大量复杂结构测试数据的全部内容,希望文章能够帮你解决Navicat for MySQL 函数 存储过程 遍历创建大量复杂结构测试数据所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(38)

评论列表共有 0 条评论

立即
投稿
返回
顶部