CREATE DEFINER=`dev`@`localhost` PROCEDURE `p_data_send`(
p__id int,
p_Date datetime,
)
BEGINDECLARE done INTDEFAULT0;
DECLARE v_a varchar(20); -- 当前游标指定的值DECLARE v_b varchar(20); -- 当前游标指定的值DECLARE v_c varchar(20); -- 当前游标指定的值DECLARE sendlist CURSORFOR-- 创建游标SELECT a from [table];
DECLARE CONTINUE HANDLER FORSQLSTATE'02000'SET done =1; -- 游标最后一条为空时的操作 SET done =0;
OPEN sendlist;
SET done=0; sendlist INTO xxx; -- 游标指定当前值
while done =0 do
-- 进行逻辑操作
IF p_ReCreate =1thenend if;
If v_oil_use <= v_oil_stand then
elseif v_oil_use > v_oil_stand thenEND IF;
CASEWHEN y.type ='01'THEN'到达'WHEN y.type ='02'THEN'结束'END;
SET done=0;FETCH sendlist INTO xxx; -- 游标指定当前值end while;
CLOSE sendlist;
END
MySQL 游标双层循环方法
DROPPROCEDURE IF EXISTS pro_cursor_nest;
CREATEPROCEDURE pro_cursor_nest()
BEGIN-- out BEGINDECLARE c_name VARCHAR(200) ;
DECLARE out_done INTDEFAULTFALSE ; -- 外层游标控制变量DECLARE out_cursor CURSORFOR (SELECT NAME FROM client ); -- 外层游标DECLARE CONTINUE HANDLER FORNOT FOUND SET out_done =TRUE ; -- 外层游标执行结束,置为TRUEOPEN out_cursor ; -- 打开外层游标
WHILE NOT out_done DO -- out WHILEFETCH out_cursor INTO c_name ; -- 从【外层游标】中获取数据,赋值到定义变量中
IF NOT out_done THEN-- out IF-- 开始定义内层游标BEGIN-- inner BEGINDECLARE money INT ;
DECLARE inner_done intDEFAULTFALSE ;
DECLARE inner_cursor CURSORFOR ( SELECT balance FROM account );
DECLARE CONTINUE HANDLER FORNOT FOUND SET inner_done =TRUE ;
OPEN inner_cursor ; -- 打开内层游标
WHILE NOT inner_done DO -- inner WHILEFETCH inner_cursor INTO money ; -- 从【内层游标】中获取数据,赋值到定义变量中
IF NOT inner_done THENINSERTINTO `batch` (`id`, `name`, `age`) VALUES (UUID(),c_name ,money);
END IF;
END WHILE ; -- END inner WHILECLOSE inner_cursor; -- 循环结束后,关闭内层游标END; -- END inner BEGINEND IF; -- END out IFEND WHILE; -- END out WHILECLOSE out_cursor ; -- 循环结束后 ,关闭外层游标END; -- END out BEGIN
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)