mysql 动态生成测试数据的语句

  • A+
所属分类:数据库

mysql 动态生成测试数据的语句,方便测试数据

 

一、问题

要生成两类数据:

A类:两位的 01 02 03 。。。09 10 11。。。19 20 21 。。。98 99

另一类B类:三位的 100 101 102 。。。110 111 112。。。998 999

二、解决办法

1、建表

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

2、创建存储过程

  1. DELIMITER $$
  2. DROP PROCEDURE IF EXISTS `test`.`proc_tp` $$
  3. CREATE DEFINER=`root`@`localhost` PROCEDURE `proc_tp`(in prex int,in max int)
  4. begin
  5. declare i INT DEFAULT 0;
  6. declare s varchar(500);
  7. WHILE (i<10 and prex<max) DO
  8. select concat(prex,i) into s;
  9. insert into ta (a) values (s);
  10. set i=i+1;
  11. if(i=10 and prex<max) then
  12. set prex=prex+1;
  13. set i=0;
  14. end if;
  15. END WHILE ;
  16. end $$
  17. 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;

图片引用自网络