SQL之使用存储过程循环插入数据

1、已经创建了任务日志表

复制代码
CREATE TABLE `t_task_log` (
  `id` bigint NOT NULL AUTO_INCREMENT,
  `task_id` bigint NOT NULL COMMENT '任务ID',
  `read_time` bigint NOT NULL COMMENT '单位秒,读取耗时',
  `write_time` bigint NOT NULL COMMENT '单位秒,写入耗时',
  `read_size` bigint NOT NULL COMMENT '读取记录数,单位条',
  `write_size` bigint NOT NULL COMMENT '写入记录数,单位条',
  `status` int NOT NULL COMMENT '0表示执行中,1表示执行失败,2表示执行成功',
  `created_by` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,
  `created_datetime` datetime NOT NULL,
  `last_updated_by` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,
  `last_updated_datetime` datetime NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=485521 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;

2、创建存储过程

复制代码
DROP PROCEDURE loopAddLog;
 
CREATE PROCEDURE loopAddLog()
begin
declare i int;
set i = 1;
repeat
	INSERT INTO hmblogs.t_task_log
	(task_id, read_time, write_time, read_size, write_size, status, created_by, created_datetime, last_updated_by, last_updated_datetime)
	VALUES(i, 10, 10, 100000, 100000, i%3, 'admin', now(), 'admin', now());
    set i = i + 1;
until i >= 100000000
end repeat;


end

3、执行存储过程

复制代码
call loopAddLog();

已经在插入数据了

相关推荐
闪电麦坤951 小时前
SQL:子查询(subqueries)
数据库·sql
Edward.W8 小时前
如何有效防止 SQL 注入攻击?
数据库·sql
bing_15810 小时前
Spring Boot 应用中如何避免常见的 SQL 性能陷阱 (例如:SELECT *, NOT IN, 隐式类型转换)?
spring boot·sql·性能优化
PXM的算法星球13 小时前
【Java后端】MyBatis 与 MyBatis-Plus 如何防止 SQL 注入?从原理到实战
java·sql·mybatis
caihuayuan413 小时前
【docker&redis】用docker容器运行单机redis
java·大数据·sql·spring·课程设计
聪明的墨菲特i14 小时前
SQL进阶知识:六、动态SQL
数据库·sql·sql注入·动态sql·prepare·execute
爱的叹息15 小时前
数据库sql执行报错:non-grouping field xxx is used in HAVING clause错误详解
数据库·sql·oracle
聪明的墨菲特i19 小时前
SQL进阶知识:七、数据库设计
数据库·sql·mysql·oracle·db2·数据库设计·范式
鹏翼丶1 天前
搭建动态SQL取数
数据库·sql·动态sql
篱笆院的狗1 天前
MySQL 中 SQL 语句的详细执行过程
数据库·sql·mysql