51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 1398|回复: 0
打印 上一主题 下一主题

[测试开发班] 使用存储过程造百万级测试数据

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-8-27 17:58:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
来源微信公众号:IT测试前沿  https://mp.weixin.qq.com/mp/home ... 445af3d56b9bd8ba0df

1.        首先我们先创建一张表
创建一张表以存放测试数据,该表包含四个字段:唯一自增量的主键id、姓名name、手机号mobile、身份证号idcode。

-- ----------------------------
-- Table structure for `user_test`
-- ----------------------------
DROP TABLE IF EXISTS `user_test`;
CREATE TABLE `user_test` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(10) DEFAULT NULL,
  `mobile` varchar(11) DEFAULT NULL,
  `idcode` varchar(18) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;



2.        创建一个增加一条记录的存储过程并调用
DROP PROCEDURE IF EXISTS proInsert;
Create procedure proInsert()
Begin
Insert into user_test(name,mobile,idcode) values('姓名1','13900001111','123456789012345678');
End

Call proInsert ();



3.        在原有基础上增加循环语句
DROP PROCEDURE IF EXISTS proInsert;
Create procedure proInsert()
Begin
        #定义一个初始变量
        Declare i int;
        Declare _name varchar(10) default        1;
        Declare _mobile varchar(11) default 1;
        Declare _idcode varchar(18) default 1;
        #设置变量值为1
        Set i=1;

        While i<=10 do
                #mysql的连接函数
                Set _name=concat('姓名_',i);
                #name加后缀
                Set _mobile =1380000000+i;
                #mysql 随机函数,生成0-1的小数
                Set _idcode=123456789010000000+i;
                Insert into user_test(name,mobile,idcode) values(_name,_mobile,_idcode);
                Set i=i+1;
        End while;
End


4.        使用call调用存储过程,或者运行函数。
Call proInsert();



5.        增加后的数据




6.        存储过程的一些语法:
a)        删除存储过程命令:
        DROP {PROCEDURE | FUNCTION} [IF EXISTS] 名称;
b)        创建存储过程:
        create procedure 名称(参数,.....)
                 begin
                     过程体;
                     过程体;
                 end//
c)        参数:
                in|out|inout 参数名称 类型(长度)
d)        在sql语句中给变量赋值:
        into
e)        在过程体外声明变量:
        @变量名
f)        重新制定sql语句的结束符:
        delimiter //
g)        例子:获取5条文章记录
        create procedure getNews()
                begin
                        select * from news limit 5;
                end//
h)        例子:获取n条文章记录
        create procedure getNewsN(in n int(5))
                begin
                        select * from news limit n;
                end//
i)        例子:获取某栏目下文章的条数。
        create procedure getNewsByType(in fid int,out num int)
                begin
                        select count(*) into num from news where fcid=fid;
                end//
j)        声明变量:
        declare 变量名 类型(长度) default 默认值;
k)        给变量赋值:
        set 变量名=值;





分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-5-9 21:31 , Processed in 0.065233 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表