广

MYSQL

  • MYSQL
  • MSSQL
  • Redis
  • MongoDB
  • oracle数据库
  • 数据管理

    mysql 动态生成测试数据

    2018-05-16 07:54:19 次阅读 稿源:互联网
    零七网广告
    全网推广平台,软文发布
    一、问题
    要生成两类数据:
    A类:两位的 01 02 03 。。。09 10 11。。。19 20 21 。。。98 99
    另一类B类:三位的 100 101 102 。。。110 111 112。。。998 999
    二、解决办法
    1、建表
    代码如下:

    CREATE TABLE `test`.`ta` (
    `a` varchar(45) NOT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

    2、创建存储过程
    代码如下:

    DELIMITER $$
    DROP PROCEDURE IF EXISTS `test`.`proc_tp` $$
    CREATE DEFINER=`root`@`localhost` PROCEDURE `proc_tp`(in prex int,in max int)
    begin
    declare i INT DEFAULT 0;
    declare s varchar(500);
    WHILE (i<10 and prex<max) DO
    select concat(prex,i) into s;
    insert into ta (a) values (s);
    set i=i+1;
    if(i=10 and prex<max) then
    set prex=prex+1;
    set i=0;
    end if;
    END WHILE ;
    end $$
    DELIMITER ;

    3、分别调用执行存储过程
    CALL proc_tp(0,10) 创建A类数据
    CALL proc_tp(10,100) 创建B类数据
    4、查询结果
    SELECT * FROM ta t order by cast(a as signed) asc;

    零七网部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与零七网进行文章共享合作。

    零七网广告
    零七网广告
    零七网广告
    零七网广告