各位用户为了找寻关于mysql 动态生成测试数据的资料费劲了很多周折。这里教程网为您整理了关于mysql 动态生成测试数据的相关资料,仅供查阅,以下为您介绍关于mysql 动态生成测试数据的详细内容

一、问题  要生成两类数据:  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;