mysql-游标及存储过程游标的使用--源自技术

mysql声明游标的方法 mysql声明游标的方法: 1、声明变量和游标 declare result varchar(3000); declare flag1 varchar(100); DECLARE done INT DEFAULT FALSE; declare cur1 CURSOR FOR SELECT flag from bmlx; 2、变量赋值 DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; set result = ''; 3、打开游标和循环 open cur1; read_loop: LOOP — 给游标赋值 FETCH cur1 立即下载

一个完整的mysql游标使用例子:

定义本地变量

  1. DECLARE o varchar(128); 

定义游标

  1. DECLARE ordernumbers CURSOR  
  2. FOR  
  3. SELECT callee_name FROM account_tbl where acct_timeduration=10800;  
  4. DECLARE CONTINUE HANDLER FOR NOT FOUND SET no_more_departments=1;  
  5. SET no_more_departments=0;  

打开游标

  1. OPEN ordernumbers; 

循环所有的行

  1. REPEAT  
  2. -- Get order number  
  3. FETCH ordernumbers INTO o;  
  4. update account set allMoneyallMoney=allMoney+72,lastMonthConsumelastMonthConsume=lastMonthConsume-72 where NumTg=@o;  

循环结束

  1. UNTIL no_more_departments  
  2. END REPEAT; 

关闭游标

  1. CLOSE ordernumbers; 


现在简单总结一下游标的知识。
(一),认识游标(cursor)
就是一个可读的标识,用来标识数据取到什么地方了。
(二),游标特性
1,只读
2,不滚动
3,不敏感的
(三),使用游标
需要强调的是,游标必须在定义处理程序之前被定义,但变量必须在定义游标之前被定义,顺序就是变量定义-游标定义-处理程序。
1.定义游标
DECLARE cursor_name CURSOR FOR select_statement
这个语句声明一个游标。也可以在子程序中定义多个游标,一个块中的每一个游标必须命名唯一。声明游标后也是单条操作的。
2. 游标OPEN
OPEN cursor_name
这个语句打开先前声明的游标。
3. 游标FETCH
FETCH cursor_name INTO var_name [, var_name] ...
这个语句用指定的打开游标读取下一行(如果有下一行的话),并且前进游标指针至该行。
4. 游标CLOSE
CLOSE cursor_name
这个语句关闭先前打开的游标,注意,用完后必须关闭。
(四)示例,下面是一个存储过程,里面用到游标,逐条更新数据(批量更新数据)

BEGIN
 DECLARE  no_more_record INT DEFAULT 0;
 DECLARE  pID BIGINT(20);
 DECLARE  pValue DECIMAL(15,5);
 DECLARE  cur_record CURSOR FOR   SELECT colA, colB from tableABC;  /*首先这里对游标进行定义*/
 DECLARE  CONTINUE HANDLER FOR NOT FOUND  SET  no_more_record = 1; /*这个是个条件处理,针对NOT FOUND的条件,当没有记录时赋值为1*/

 OPEN  cur_record; /*接着使用OPEN打开游标*/
 FETCH  cur_record INTO pID, pValue; /*把第一行数据写入变量中,游标也随之指向了记录的第一行*/

 WHILE no_more_record != 1 DO
 INSERT  INTO testTable(ID, Value)
 VALUES  (pID, pValue);
 FETCH  cur_record INTO pID, pValue;

 END WHILE;
 CLOSE  cur_record;  /*用完后记得用CLOSE把资源释放掉*/
END
RK3576处理器RT-Thread与Linux混合部署实现工业EtherCAT实时控制 实时操作系统(RTOS)是工业自动化领域的核心技术,通过精确的任务调度和中断响应机制确保微秒级控制精度。RT-Thread作为开源实时系统,采用优先级抢占式调度算法,能够满足运动控制和总线通信的硬实时需求。在工业显控一体设备中,实时系统需要与富应用系统协同工作,Linux系统负责图形界面和网络通信等非实时任务。混合部署架构通过共享内存和核间通信技术实现数据交换,既保证了实时性能又扩展了应用生态。EtherCAT工业以太网协议作为高性能现场总线,采用主从站结构和分布式时钟同步,可实现多轴运动控制的精确同步。R 阅读详情

相关推荐

【UE5】虚幻引擎Gameplay框架

游戏实例(UGameInstance)会在引擎启动时实例化,并保持活跃直至引擎关闭。这是一种管理器类,在游戏中不存在实体,但会追踪数据和运行代码。在联网多人游戏中,游戏实例不会被复制,而是独立存在于服务器以及所有互联的客户端上。所有你希望在关卡加载间保持的内容都应存于游戏实例中。例如,游戏实例是管理游戏保存系统的到地方。游戏实例还可以充当任意数量的 游戏实例子系统 的管理器,这些子系统由游戏实例创建和销毁,并且与游戏实例本身具有相同的生命周期。在线子系统就属于这类子系统。

一个写程序的 1796

MySQL游标(cursor) 定义及实例学习

在MySql中,造成游标溢出时会引发mysql预定义的NOT FOUND错误,所以在上面使用下面的代码指定了当引发not found错误时定义一个continue 的事件,指定这个事件发生时修改done变量的值。实例说明:编写两个表 sys_user和 user, 编写存储过程,当 两个表的 id 相同时 将 user 表中的 name 更新为 sys_user 中的 user_name。fetch是获取游标当前指向的数据行,并将指针指向下一行,当游标已经指向最后一行时继续执行会造成游标溢出。

康师傅没有眼泪 2万+

手把手教你用Simulink搭建级联H桥储能变流器仿真模型(附SOC均衡分析)

本文详细介绍了如何使用Simulink搭建级联H桥储能变流器仿真模型,并附有SOC均衡分析。从仿真环境准备、单相H桥单元建模到多模块级联方案和SOC均衡策略实现,逐步指导读者完成复杂系统的构建与优化。通过关键仿真结果分析和工程实践问题排查,帮助读者掌握级联H桥储能变流器的核心技术与应用方法。

weixin_42524226的博客 446

MySQL 游标例子

在 MySQL 中,游标(Cursor)用于遍历查询结果集。游标提供了一种逐行处理查询结果的机制,适用于需要按行处理数据的情况。以下是使用游标的步骤和示例。

weixin_44783692的博客 1074

彻底解决0x80070005错误代码:全面分析与实战指南

0x80070005错误代码虽然令人头疼,但通过上述方法,我们完全有能力将其攻克。从检查磁盘空间、设置账号权限,到运行疑难解答和系统文件检查器,再到调整相关服务状态,每一步都是解决这一问题的关键。希望本文能为你提供有力的帮助,让你在使用Windows系统的过程中更加顺畅无忧。

nntxthml的博客 6939

AD9361 官方例程

文章目录一、官方资料1.1 介绍1.2 下载 和 使用1.3 相关资料二、步骤2.1 在Vivado中构建HDL2.2 在SDK中构建No- OS总结 一、官方资料 1.1 介绍 HDL参考设计介绍:AD9361 HDL Reference Designs 无操作系统介绍:AD9361 No-OS Software 1.2 下载 和 使用 HDL下载:Download HDL 在Vivado中构建HDL:Building HDL No-OS下载:Download No-OS 1.3 相关资料 AD

weixin_44630490的博客 3万+

MySQL游标

对查询的结果集进行前一行或后一行类似的操作时就可以使用到游标。declare 游标名称 cursor for 查询语句;– xx名称,打开游标后抓取每行,将结果赋值给name。– 对查询的结果集(即游标)进行检索行至变量提供使用。create procedure 存储过程名称()drop procedure 存储过程名称;fetch 游标名称 into name;为1的订单明细名称的结果集作为游标。call 存储过程名称;close 游标名称;open 游标名称;

AI论道的博客 558

OpenGL 进阶系列10 - 光线跟踪实现简介(Ray Tracing)

OpenGL 实现光线跟踪(Ray Tracing)是一个相对复杂但有趣的挑战,通常用于生成高度逼真的图像效果,如反射、折射、阴影等。OpenGL 本身并不是为光线跟踪设计的,但可以通过结合计算着色器和现代 OpenGL 功能实现光线跟踪。光线跟踪的基本思路是从相机(或视点)出发,发射光线并计算这些光线与场景中物体的交点。光线与场景中物体相交的计算。计算交点的光照(基于表面法线、光源位置、材质等)。反射和折射的处理(如果物体是透明或反射的)。

GPU全栈博主 1534

mysql游标的经典例子_mysql中游标的使用案例详解(学习笔记)

1.游标是啥玩意?简单的说:游标(cursor)就是游动的标识,啥意思呢,通俗的这么说,一条sql取出对应n条结果资源的接口/句柄,就是游标,沿着游标可以一次取出一行。我给大家准备一张图:2.怎么使用游标?//1.声明/定义一个游标declare 声明;declare 游标名 cursor for select_statement;//2.打开一个游标open 打开;open 游标名//3.取值f...

weixin_42638178的博客 1248

中兴交换机如何配置?有哪些常用的配置命令,本文值得收藏!

中兴交换机是一种常见的网络设备,用于构建和管理企业网络。它提供了丰富的功能和灵活的配置选项,使网络管理员能够根据特定需求进行定制化配置。本文将详细介绍中兴交换机的配置过程,包括登录、基本设置、VLAN配置、接口配置和安全配置等内容。

网络技术联盟站 1万+

HFSS 3D Layout仿真PCB操作说明

本文介绍一种特别适合PCB这种叠层结构的仿真软件,HFSS 3D Layout既有操作的简便性,又有同3D软件仿真所有的精确性,仿真速度上又比3D软件快很多。

sinat_15150363的博客 3944

mysql 游标(光标)的使用与实现示例(入门级别)

前言 游标通常都是使用在存储过程中的,对于没有接触和使用过游标的同学,第一次写游标或许会一脸懵,这里提供了游标的简单使用示例,非常好用。 1.数据表(select_num) 代码如下(示例): CREATE TABLE `select_num` ( `id` SMALLINT (5) COMMENT 'id编号', `sn` SMALLINT (5) COMMENT '所要提取的数据--自定义', ); INSERT INTO `td_select_num` (`id`, ...

weixin_42825317的博客 799

如何在 Mac 上下载安装 Xcode——并为 iOS 开发更新它原文

下载 Xcode安装命令行工具打开新版本删除文件注意,我在下面的步骤中列出了一些终端命令。这些命令可以被输入到你现在的工作目录中。这意味着你不需要导航到任何特定的文件夹。如果你真的想这样做,你可以在输入下面的步骤中的命令之前先输入== cd==。这将使你返回到主文件夹。

专注于AI领域前沿知识,业余爱好开发软件 4670

MySql存储过程和游标的使用。

这里存储过程和游标的定义和作用就不介绍了,网上挺多的,只通过简单的介绍,然后用个案例让大家快速了解。实例中会具体说明变量的定义,赋值,游标的使用,控制语句,循环语句的介绍。 1.创建存储过程。 CREATE PROCEDURE myproc(OUT s int) BEGIN SELECT COUNT(*) INTO s FROM students; END 存储过程根据需要可能会有输入、输出、输入输出参数,如果有多个参数用","分割开。MySQL存储过程的参数用在存储过程的定义

csdn2990的博客 8050

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

MySQL游标双层循环方法 MySQL存储过程游标嵌套循环 MySQL使用多个游标

MySQL游标双层循环方法 MySQL存储过程游标嵌套循环MySQL使用多个游标 一、需求描述 1、在项目中,需要将A表中主键id,逐个取出,作为条件,在B表中去逐一查询,将B表查询到的结果集(A表B表关系:一对多),逐一遍历,连同A表的id,逐个插入到C表中。 2、 在Java中很容易实现,A表获取到的结果集,循环遍历取出id,去B表查询;遍历B表结果集,插入到C表中。...

HaHa_Sir的博客 6815

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

MySQL中使用游标

这个过程实际上没有检索数据,它只是定义要使用的 SELECT语句和游标选项。一旦声明,就必须。

i_cant_qiao_chu的博客 1213

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

mysql 存储过程中使用多游标

本文转自:http://www.netingcn.com/mysql-procedure-muti-cursor.htmlmysql的存储过程可以很方便使用游标来实现一些功能,存储过程的写法大致如下:先创建一张表,插入一些测试数据:DROP TABLE IF EXISTS netingcn_proc_test; CREATE TABLE `netingcn_proc_test` ( `id`...

lyue4的博客 4578

MySQL存储过程和游标

MySQL5 中添加了存储过程的支持。     大多数SQL语句都是针对一个或多个表的单条语句。并非所有的操作都怎么简单。经常会有一个完整的操作需要多条才能完成     存储过程简单来说,就是为以后的使用而保存的一条或多条MySQL语句的集合。可将其视为批文件。虽然他们的作用不仅限于批处理。   为什么要使用存储过程: 优点         1 通过吧处理封装在容易使用的单元中,简化复...

jiaweiok123的博客 3554

MySQL游标的使用

通过MySQL查询数据库,其结果可能为多条记录。在存储过程和函数中使用游标可以实现逐条读取结果集中的记录。游标的使用包括声明游标(DECLARE CURSOR)、打开游标(OPEN CURSOR)、使用游标(FETCH CURSOR)和关闭游标(CLOSE CURSOR)。值得一提的是,MySQL游标只能在存储过程和存储函数中使用。游标必须声明在处理程序之前,且声明在标量和条件之后,即顺序:变量定...

pan_junbiao的博客 2067

mysql 存储过程中游标_MySQL存储过程中的游标

mysql 存储过程中游标After my previous article on Stored Procedures was published on SitePoint, I received quite a number of comments. One of them suggested further elaboration on CURSOR, an important feature...

culi3118的博客 1220

mysql fetch 存储过程_【MySQL】存储过程及游标的使用

1. 写在前面本篇内容及部分示例代码基于《MySQL必知必会》,所需要获得和运行的一切东西,可以在http://www.forta.com/books/0672327120/ 上找到,包括两个SQL脚本,create.sql 和 populate.sql。本篇内容的理解同时也参考了MySQL8.0的官方文档《MySQL 8.0 Reference Manual》,若有理解不到位的地方,有能力的小...

weixin_33557333的博客 1358

MYSQL存储过程、游标及嵌套游标的基本使用

1.存储过程 mysql中的存储过程,可以理解成 C、JAVA中的方法,也就是对一些逻辑操作,加以封装一层外壳。可以提高sql的复用。比如当我们需要初始化一个表的数据。下次再需要的时候,如果又一条一条的插入,会显的比较麻烦,所以我们可以对外包装一下。形成一个innserDate的存储过程。以后使用就直接调用即可。 2.游标 游标其实就是在sql中,对多条结果集数据 进行遍历获取数据的一个机制。把结...

莫失莫忘的博客 1074

【存储过程】游标

例子: 当前有三张表A、B、C其中A和B是一对多关系,B和C是一对多关系,现在需要将B中A表的主键存到C中; 常规思路就是将B中查询出来然后通过一个update语句来更新C表就可以了,但是B表中有2000多条数据, 难道要执行2000多次?显然是不现实的;最终找到写一个存储过程然后通过循环来更新C表, 然而存储过程中的写法用的就是游标的形式。 【简介】 游标实际上是一种能从包括多条数据记录的结果集中每次提取一条记录的机制。 游标充当指针的作用。 尽管游标能遍历结果中的所有行...

meng_xiaohua的博客 4667

MySQL的存储过程中使用游标来接收查询结果集

我们如果要在MySQL的存储过程中遍历一个查询语句的结果集,需要使用到游标cursor(SQL server中可以定义表类型的变量Table,但MySQL中不行,只能用游标)。 假设我需要从 tb_stu 这张表中查询出所有记录插入到tb_stu_copy1中,等价于insert into tb_stu_copy1 select * from tb_stu; 以下是存储过程的具体sql CREATE PROCEDURE curdemo () BEGIN DECLARE stop_flag INT DE

czx2018的博客 2879

MySQL存储过程使用游标循环数据列表

本篇文章主要讲解,我的一个案例,使用存储过程和游标循环数据列表,并且做一些操作,比如保存一些数据,修改一些数据; 1、需求? MySQL使用存储过程循环数据列表? 2、先描述下MySQL有哪些循环的语法 while循环 CREATE PROCEDURE proc_while () BEGIN DECLARE num INT ; SET num = 0 ; ...

jiaweiok123的博客 6121
上一篇: 数据库锁
下一篇: Spring3MVC 在JSP中使用@ModelAttribute--源自技术
MyJava_Dx
博客等级 码龄11年 1粉丝 32原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值