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;

更多Mysql内容来自木庄网络博客


标签:Mysql

相关阅读 >>

mysql数据库使用规范总结

[mysql] mvcc多版本并发控制实现的事务

mysql语句入门详解

mysql web端不能访问怎么办

从零开始搭建mysql mmm架构

mysql子查询的使用详解上篇

详细介绍mysql忘记密码的解决方案及修改密码的三种方式

mysql必备的常见知识点汇总整理

mysql怎么计算两坐标距离并排序

关于mysql涉及锁的问题详解

更多相关阅读请进入《mysql》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...