MySQL - 创建存储过程Procedure,Do While实现循环

在处理数据时,常常需要回顾历史,例如计算用户群体趋势。本文介绍了如何在MySQL中创建存储过程并结合Do While循环实现这一功能。首先创建初始表,接着创建包含循环的存储过程,最后调用并执行该过程。遇到'Commands out of sync'错误时,可能是因为窗口失效,换新窗口查询即可解决。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

处理数据的时候,往往需要回溯历史,比如给用户分群后计算每个群体的用户数趋势,那么就需要计算截止到每一天的各个群体的用户数量,这个时候我们就需要创建存储过程,并且在存储过程中增加循环的功能,以此来实现上述回溯的需求。

第一步:先创建一个初始表,用于循环过程中插入数据

-- 创建表之前先判断有没有这个表存在,有的话就删掉
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  -
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值