测试数据准备-使用mysql数据存储过程批量插入数据

我平时会用到以下几种准备测试数据的方法:向数据库插数据,通过接口写数据,自动化测试方法写数据。本文介绍数据库插数据的方法:数据存储过程。

数据存储过程是最直接的插入批量数据的方法,提前条件是清楚数据的表结构,知道表与表之间的关联,最多的时候,一次插入了8张具有关联关系的表数据。

首先需要创建存储过程:

CREATE PROCEDURE gen_data();

BEGIN

  declare id varchar(255) defalut NULL;

  declare id_ form XXX where XXX into id_; //定义id是从表中读取并赋值给变量id

  insert into XXX (id_,name,xxx) values();

END

CALL gen_data()

上面是一个最基础的存储过程示例,当然,要创建大批量的数据,尤其是多张表插入的时候,设置变量,比如随机数、日期、循环都是必需的。

创建一个当前的日期的变量:

 declare created_date timestamp;

 set created_date = current timestamp();

创建一个循环语句:

while i <10 do

  XXX

  set i =i+1;

end while;

使用rand()函数创建随机数

生成6位的随机数:floor((rand()*10),6,0)

遇到的问题:

报错,运行的时候报错说[Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'call gen_data()' at line 15

原因是mysql版本的问题,我使用的是mysql8.0;mysql读取语句时遇到“;”就以为是结束了,所以需要接入delimiter用来定义结束符。在创建过程之前加入delimiter  //,表示只有遇到//才表示此程序结束。

 

posted @ 2019-11-18 16:56  childish  阅读(332)  评论(0编辑  收藏  举报