处理数据的时候,往往需要回溯历史,比如给用户分群后计算每个群体的用户数趋势,那么就需要计算截止到每一天的各个群体的用户数量,这个时候我们就需要创建存储过程,并且在存储过程中增加循环的功能,以此来实现上述回溯的需求。
第一步:先创建一个初始表,用于循环过程中插入数据
-- 创建表之前先判断有没有这个表存在,有的话就删掉
DROP TABLE IF EXISTS test_table;
-- 创建表
CREATE TABLE `test_table` (
`id` INT (11) NOT NULL AUTO_INCREMENT,
`time` VARCHAR (255) DEFAULT '2021-12-22 11:22:32',
PRIMARY KEY (`id`),
UNIQUE KEY `time` (`time`)
) ENGINE = INNODB AUTO_INCREMENT = 11 DEFAULT CHARSET = utf8;
-- 创建完先看一眼这个表
desc test_table;
第二步:创建存储过程
-- 定义结束符为 $$
delimiter $$
-- 创建存储过程之前先判断有没有这个存储过程存在,有的话就删掉,防止报错
drop procedure if exists insertdata;
create procedure insertdata( a INT) -- 创建新的存储过程,a是参数,整数
begin
declare i int default 0; -- 变量声明i
while i < a do -