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  //,表示只有遇到//才表示此程序结束。

  • 相关阅读:
    Python+Apache环境搭建
    离线Python环境搭建
    Docker+Nginx+Vue部署
    Docker部署Flask
    Web服务器根据url参数代理
    javaweb各种框架组合案例(五):springboot+mybatis+generator
    javaweb各种框架组合案例(四):maven+spring+springMVC+spring data jpa(hibernate)【失败案例】
    在无界面centos7上部署MYSQL5.7数据库
    关于通过ip或者域名直接访问工程的问题
    在无界面centos7上部署jdk和tomcat
  • 原文地址:https://www.cnblogs.com/memebuguoshixingfu/p/11883289.html
Copyright © 2011-2022 走看看