zoukankan      html  css  js  c++  java
  • 测试数据准备-使用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  //,表示只有遇到//才表示此程序结束。

  • 相关阅读:
    angular 中同级元素交替样式
    Type反射遍历类的属性
    对路径“xxxxx”的访问被拒绝。
    判断文件路径和文件是否存在
    List集合删除方法
    .NET 树型递归
    AngularJS使用ngMessages进行表单验证
    Windows 端口占用查询
    小程序页面高度控制
    如何理解多个域名解析到同一个服务器空间上?
  • 原文地址:https://www.cnblogs.com/memebuguoshixingfu/p/11883289.html
Copyright © 2011-2022 走看看