我们平时的测试过程中有一个环节就是准备测试数据,包括准备基础数据,准备业务数据,使用的场景包括压力测试,后台批量数据传输,前端大数据查询导出,或者分页打印等功能,准备测试数据我们通俗点讲就是造数据,根据不同的使用场景我们有不同的造数据的方式,比如需要大数据时我们可以用jmeter压测获取大数据,也可以导入生产数据,简单少许的测试数据我们直接在数据库中插入,本篇主要记录的是另外一种造数据的方式——通过编写存储过程来实现批量数据插入。
一、编写调用存储过程:
数据库类型:mysql
需求:在user表中插入数据,user表主键为id,id方式为长度为32位的字母+数字随机字符串
1、创建存储过程

1 DELIMITER $$ 2 USE `db_test`$$ 3 DROP PROCEDURE IF EXISTS `proc_user`$$ 4 5 CREATE DEFINER=`root`@`%` PROCEDURE `proc_user`() 6 BEGIN 7 DECLARE user_name VARCHAR(60); 8 DECLARE email VARCHAR(150); 9 DECLARE rand_id VARCHAR(120); 10 DECLARE id VARCHAR(120); 11 DECLARE i INT DEFAULT 1000; 12 DECLARE createtime DATETIME; 13 DECLARE tel_body VARCHAR(40); 14 DECLARE tel VARCHAR(60); 15 -- 调试过程, 先插入5条 16 WHILE i <= 1005 DO 17 -- user_name = test + i 18 SET user_name = CONCAT('test', i); 19 SET email = CONCAT(user_name,'@qq.com'); 20 SET rand_id= SUBSTRING(MD5(RAND()),1,28); 21 -- id = rand_id + i, +i的目的主要是为了区分测试数据与user_name对应 22 SET id = CONCAT(rand_id, i); 23 SET createtime = NOW(); 24 SET tel_body = FLOOR(RAND()*100000000); 25 -- tel = 159开头随机号码 26 SET tel = CONCAT('159', tel_body); 27 28 INSERT INTO `user` 29 VALUES(id, 30 user_name, 31 '202cb962ac59075b964b07152d234b70', 32 '0cc495f78776486294ebc7c08831aabe', 33 NULL, 34 createtime, 35 tel, 36 email 37 ); 38 SET i=i+1; 39 END WHILE; 40 END$$
这就是微学网-程序员之家为你提供的"mysql应用之通过存储过程方式批量插入数据"希望对你有所帮助.本文来自网络,转载请注明出处:http://www.weixuecn.cn/article/10095.html