,如果想要验证大数据下的场景,必须要批量造数据。批量造数据既可以通过Java实现,也可以通过MySQL本身的功能实现,本章主要学习如何使用MySQL的循环语句造大量数据
通过mysql表选中一条数据,右键选中复制为insert语句
一、使用while语句写循环
SELECT * from t_test;
DELETE from t_test;
-- 设置mysql分隔符为//,也就意味着,当遇到下一个//时,整体执行SQL语句
DELIMITER //
DROP PROCEDURE if EXISTS pdu_t_test; -- 如果存在pdu_user存储过程则删除
CREATE procedure pdu_t_test(a int) -- 创建无参存储过程,名称为pdu_user
BEGIN
DECLARE i INT; -- 申明变量
SET i = 1; -- 变量赋值
WHILE i<=a DO -- 结束循环的条件: 当i大于a时跳出while循环
-- 往eps_after_sale_apply表添加数据
INSERT INTO `t_test` VALUES (i, CONCAT('t_10',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_test; -- 查看t_t_user表数据
END
// # 结束定义语句
CALL pdu_t_test(10000); -- 调用存储过程
DELIMITER ; -- 重新将分隔符设置为;
二、使用repeat语句写循环
SELECT * from t_test;
DELETE from t_test;
DROP PROCEDURE IF EXISTS pdu_t_test;
create procedure pdu_t_test(a int)
begin
declare i int default 1;
repeat -- 循环开始
INSERT INTO `t_test` VALUES (i, CONCAT('t_10',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_testr; -- 输出结果
end;
-- 执行存储过程
call pdu_t_test(10000);
三、使用loop语句写循环
DROP PROCEDURE IF EXISTS pdu_t_test;
create procedure pdu_t_test(a int)
begin
declare i int default 1;
loop_name:loop -- 循环开始
if i>a then
leave loop_name; -- 判断条件成立则结束循环
end if;
INSERT INTO `t_test` VALUES (i, CONCAT('t_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_test; -- 输出结果
end;
-- 执行存储过程
call pdu_t_test(10000);