微学网

热门关键词:   as  thinkphp  ecshop  xxx  php分页  商务通
热门: ASP.NET PHP编程 ASP编程 JSP编程 Python

mysql应用之通过存储过程方式批量插入数据

发布时间:2020-03-13 来源:未知 点击:

我们平时的测试过程中有一个环节就是准备测试数据,包括准备基础数据,准备业务数据,使用的场景包括压力测试,后台批量数据传输,前端大数据查询导出,或者分页打印等功能,准备测试数据我们通俗点讲就是造数据,根据不同的使用场景我们有不同的造数据的方式,比如需要大数据时我们可以用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

上一篇:MySQL基础篇

下一篇:Windows下备份mysql

网络编程 | 前端制作 | 数据库 | CMS教程 | 脚本编程 | 框架 | 微信公众号 | 小程序 | 服务器 | APP开发 |

凡本网站转载的文章、图片等资料的版权归版权所有人所有,因无法和版权所有者一一联系,如果本网站选取的文/图威胁到您的权益,请您及时和本网站联系。 我们会在第一时间内采取措施,避免给双方造 成不必要的损失。
© 2015-2018 微学网 版权所有,并保留所有权利。 备案号:粤ICP备09051474号-1

电脑版 | 移动版