我的编程空间,编程开发者的网络收藏夹
学习永远不晚

mysql存储过程中游标怎样遍历

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

mysql存储过程中游标怎样遍历

这篇文章主要介绍了mysql存储过程中游标怎样遍历,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。

mysql存储过程中游标遍历的方法:首先取值,取多个字段;然后遍历数据结束标志,将结束标志绑定到游标,代码为【DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;】。

mysql存储过程中游标遍历的方法:

CREATE DEFINER=`root`@`%` PROCEDURE `updStatus`()
BEGIN
DECLARE startTime DATETIME;
DECLARE endTime DATETIME;
DECLARE curTime DATETIME;
DECLARE id VARCHAR(36); 
DECLARE estatus VARCHAR(4); 
-- 遍历数据结束标志
    DECLARE done INT DEFAULT FALSE;
    -- 游标
    DECLARE examIds CURSOR FOR SELECT EXAM_ID FROM t_exam WHERE EXAM_STATUS = 1 or EXAM_STATUS = 2;
    -- 将结束标志绑定到游标
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
OPEN  examIds;     
    -- 遍历
    read_loop: LOOP
-- 取值 取多个字段
FETCH  NEXT from examIds INTO id;
IF done THEN
LEAVE read_loop;
END IF;
SELECT EXAM_STATUS INTO estatus FROM t_exam WHERE EXAM_ID = id ;
IF estatus =1 THEN
SELECT NOW() INTO curTime;
SELECT EXAM_START_TIME INTO startTime  from t_exam WHERE EXAM_ID = id ;
SELECT EXAM_END_TIME INTO endTime  from t_exam WHERE EXAM_ID = id ;
IF curTime >= startTime AND endTime > curTime  THEN
UPDATE t_exam SET EXAM_STATUS = 2 WHERE EXAM_ID = id;
ELSEIF curTime >= endTime THEN
UPDATE t_exam SET EXAM_STATUS = 3 WHERE EXAM_ID = id;
END IF;
ELSE
SELECT NOW() INTO curTime;
SELECT EXAM_END_TIME INTO endTime  from t_exam WHERE EXAM_ID = id ;
IF curTime >= endTime THEN
UPDATE t_exam SET EXAM_STATUS = 3 WHERE EXAM_ID = id;
END IF;
END IF;
    END LOOP;
 
    CLOSE examIds;
END

感谢你能够认真阅读完这篇文章,希望小编分享mysql存储过程中游标怎样遍历内容对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,遇到问题就找亿速云,详细的解决方法等着你来学习!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

mysql存储过程中游标怎样遍历

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

MySQL存储过程和游标

一、存储过程什么是存储过程,为什么要使用存储过程以及如何使用存储过程,并且介绍创建和使用存储过程的基本语法。什么是存储过程:存储过程可以说是一个记录集,它是由一些T-SQL语句组成的代码块,这些T-SQL语句代码像一个方法一样实现一些功能(对单表或多表的增删改
MySQL存储过程和游标
2019-12-05

mysql存储过程查询结果循环遍历 判断 赋值 游标等基本操作

一、首先说下本篇博客所实现功能的背景和功能是怎样的:       背景:因为公司项目开始迁移新平台项目,所以以前的平台老数据以及订单信息需要拆分表,而且需要业务逻辑来分析以前的订单表,来拆分成另外的几个新表, 包括增加新的流水分析,以及更新其他用户或者商家的余
mysql存储过程查询结果循环遍历 判断 赋值 游标等基本操作
2017-11-25

mysql存储过程之遍历设置表中某些字段值

缘起 ​ mysql数据库中有用到分表,大概300张表,都是以geo_data_xxxxxx来命名,之前测试过程中,有给300张表中的一个字段设置过值,但是想重新生成一遍数据。那么后面是做了一个数据清洗,给300张表is_turnout字段
2023-08-30

oracle存储过程中游标怎么使用

在Oracle存储过程中,可以使用游标来处理查询结果集。游标允许逐行处理查询结果,类似于使用指针遍历数据。以下是在Oracle存储过程中使用游标的基本步骤:1. 声明游标变量:在存储过程的声明部分,使用`CURSOR`关键字声明游标变量。例
2023-09-09

MySQL中怎么通过游标与LOOP循环遍历结果集

在MySQL中,可以使用游标和LOOP循环来遍历结果集。以下是一个示例:DELIMITER //DROP PROCEDURE IF EXISTS iterate_results//CREATE PROCEDURE iterate_resu
MySQL中怎么通过游标与LOOP循环遍历结果集
2024-04-30

oracle存储过程游标怎么使用

在Oracle存储过程中,使用游标可以迭代访问结果集。以下是使用游标的一般步骤:1. 声明游标:在存储过程的声明部分,使用`CURSOR`关键字声明游标。例如:```sqlCURSOR cursor_name IS SELECT colum
2023-09-21

编程热搜

目录