MySQL循环语句实战

目录

一、背景

二、使用while语句写循环

三、使用repeat语句写循环

四、使用loop语句写循环

 五、参考文献


一、背景

如前一篇文章所说,如果想要验证大数据下的场景,必须要批量造数据。批量造数据既可以通过Java实现,也可以通过MySQL本身的功能实现,本章主要学习如何使用MySQL的循环语句造大量数据。数据表准备请参照前一篇文章,这里就不重复了,直接上SQL。

https://blog.csdn.net/m0_37824308/article/details/121974262

二、使用while语句写循环

SELECT * from t_t_user;
DELETE from t_t_user;

-- 设置mysql分隔符为//,也就意味着,当遇到下一个//时,整体执行SQL语句
DELIMITER //
 
DROP PROCEDURE if EXISTS pdu_user;  -- 如果存在pdu_user存储过程则删除
CREATE procedure pdu_user(a int) 	-- 创建无参存储过程,名称为pdu_user
BEGIN
DECLARE i INT;  					-- 申明变量
SET i = 1;  						-- 变量赋值
WHILE i<=a DO 						-- 结束循环的条件: 当i大于a时跳出while循环
-- 往t_t_user表添加数据
INSERT INTO `t_t_user` VALUES (i, CONCAT('C_100',i), '001', 'll', 'll', 1, '2021-12-16 11:50:56', '2021-12-15 11:51:03'); 
SET i = i+1;    					-- 循环一次,i加1
END WHILE;  						-- 结束while循环
SELECT * FROM t_t_user; 			-- 查看t_t_user表数据
END
//  # 结束定义语句
CALL pdu_user(10);    				-- 调用存储过程
DELIMITER ; 						-- 重新将分隔符设置为;

三、使用repeat语句写循环

SELECT * from t_t_user;
DELETE from t_t_user;

DROP PROCEDURE IF EXISTS pdu_re;
create procedure pdu_re(a int)
begin
declare i int default 1;
repeat 		                -- 循环开始
INSERT INTO `t_t_user` VALUES (i, CONCAT('C_100',i), '001', 'll', 'll', 1, '2021-12-16 11:50:56', '2021-12-15 11:51:03'); 
set i=i+1;
until i>a end repeat;       -- 循环结束
SELECT * from t_t_user;     -- 输出结果
end;
-- 执行存储过程
call pdu_re(10);

四、使用loop语句写循环

DROP PROCEDURE IF EXISTS pdu_lo;
create procedure pdu_lo(a int)
begin
 declare i int default 1;
 loop_name:loop               -- 循环开始
  if i>a then 
    leave loop_name;          -- 判断条件成立则结束循环
  end if;
  INSERT INTO `t_t_user` VALUES (i, CONCAT('C_100',i), '001', 'll', 'll', 1, '2021-12-16 11:50:56', '2021-12-15 11:51:03'); 
  set i=i+1;
  end loop;                   -- 循环结束
  select * FROM t_t_user;     -- 输出结果
end;
 -- 执行存储过程
call pdu_lo(10000);

插入1万条数据,耗时18.9s

 五、参考文献

1、MySQL循环语句

https://www.cnblogs.com/cainiaoyige1/p/14337938.html

  • 3
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值