游标

游标(Cursor)是处理数据的一种方法,为了查看或者处理结果集中的数据,游标提供了在结果集中一次一行或者多行前进或向后浏览数据的能力。

使用步骤

声明一个游标: declare 游标名称 CURSOR for table;(这里的table可以是你查询出来的任意集合)

打开定义的游标:open 游标名称;

获得下一行数据:FETCH  游标名称 into field_1, field_2;

需要执行的语句(增删改查):这里视具体情况而定

释放游标:CLOSE 游标名称;

注:存储过程临时字段定义需要在游标定义之前。

示例:

delimiter ;;

drop procedure if exists `proc_test` ;;

CREATE PROCEDURE `proc_test`()

BEGIN

-- 定义变量

DECLARE done INT DEFAULT FALSE;

DECLARE field_1 VARCHAR(20);

DECLARE field_2 VARCHAR(20);-- 创建游标,并存储数据

DECLARE cur_list CURSOR FOR SELECT id, name FROM user;

-- 游标中的内容执行完后将done设置为true

DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = true;

-- 打开游标

OPEN cur_list;

-- 执行循环

read_loop : LOOP

-- 取游标中的值

FETCH cur_list INTO field_1, field_2;

-- 判断是否结束循环,一定要放到FETCH之后,因为在fetch不到的时候才会设置done为true

-- 如果放到fetch之前,先判断done,这个时候done的值还是之前的循环的值,因此就会导致循环一次

IF done THEN

LEAVE read_loop;

END IF;

-- 执行SQL操作

SET @sql_insert = CONCAT("insert into user_bak(id, name) VALUES ('", field_1, "','", field_2 ,"')");

PREPARE sqlli FROM @sql_insert;

EXECUTE sqlli;

COMMIT;

END LOOP read_loop;

-- 释放游标

CLOSE cur_list;

END

;;

delimiter;

mysql 存储过程 与 循环

mysql 操作同样有循环语句操作,三种标准循环模式:while, loop,repeat, 外加一种非标准循环:goto [在c或c#中貌似出现过类型循环但是一般不建议用!] 一般格式为:delim ...

mysql 存储过程、循环

CREATE PROCEDURE questionProc() BEGIN declare pgId ); declare pGuid varchar(); -- 定义游标卡尺 declare don ...

mysql存储过程双重循环示例

BEGIN ); DECLARE done INT DEFAULT FALSE; DECLARE cursor_rule CURSOR FOR SELECT s.id FROM d_menu_type ...

mysql存储过程之循环

链接: http://www.blogjava.net/rain1102/archive/2011/05/16/350301.html

MySQL存储过程使用实例详解

本文介绍关于在MySQL存储过程游标使用实例,包括简单游标使用与游标循环跳出等方法 例1.一个简单存储过程游标实例 DROP PROCEDURE IF EXISTS getUserInfo $$CRE ...

MySql 存储过程 光标只循环一次

[1]MqSql 存储过程 光标只循环一次 针对MySql存储过程,光标只循环一次就退出的场景,可能原因分析: (1)存储过程有问题(仔细检查语法.控制变量.条件等等) (2)保证存储过程正确.调用过 ...

MySQL存储过程中的3种循环【转载】

在MySQL存储过程的语句中有三个标准的循环方式:WHILE循环,LOOP循环以及REPEAT循环.还有一种非标准的循环方式:GOTO,不过这种循环方式最好别用,很容易引起程序的混乱,在这里就不错具体 ...

MySQL存储过程中的3种循环

在MySQL存储过程的语句中有三个标准的循环方式:WHILE循环,LOOP循环以及REPEAT循环.还有一种非标准的循环方式:GOTO,不过这种循环方式最好别用,很容易引起程序的混乱,在这里就不错具体 ...

MySQL 存储过程循环

MySQL  存储过程循环 MySQL循环语句(包括WHILE,REPEAT和LOOP)来根据条件反复运行代码块. MySQL提供循环语句,允许您根据条件重复执行一个SQL代码块. MySQL中有三个 ...

随机推荐

Blob 构造函数

Blob 构造函数使 Web 开发人员可直接在客户端上创建或操作 Blob(经常等效于一个文件). 该构造函数在 W3C 的文件 API 规范中进行定义,该规范目前尚处于工作草案阶段.在较早版本的文件 ...

AndroidHttp通信 HTTP Client与HttpURLConnection的区别

Apache HTTP Client DefaultHttpClient 以及其相关类AndroidHttpClient 适用于 web browsers, 他们是可扩展的,并且拥有大量的稳定APIs ...

JS/jQ常用宽高及应用

关于js的宽高,随便一搜就是一大堆.这个一大堆对我来说可不是什么好事,看的头都大了.所以今天就总结了一些比较会常用的,并说明一下应用场景. 先来扯一下documentElement和body的微妙关系 ...

windows平台安装并使用MongoDB

下载并安装MongoDB,我的安装路径:D:\Program_Files\MongoDB 创建数据库目录,我的目录:D:\mongodb\data\db 命令行下运行MongoDB服务器: 在命令行窗 ...

《Ext JS 4.2 实战》可以买了

今天编辑告诉我,在网上可以买到这书了,购买链接是http://www.amazon.cn/Ext-JS-4-2%E5%AE%9E%E6%88%98-%E9%BB%84%E7%81%AF%E6%A1%A ...

spring-boot-2.0.3源码篇 - @Configuration、Condition与@Conditional

前言 开心一刻 一名劫匪慌忙中窜上了一辆车的后座,上车后发现主驾和副驾的一男一女疑惑地回头看着他,他立即拔出枪威胁到:“赶快开车,甩掉后面的警车,否则老子一枪崩了你!”,于是副驾上的男人转过脸对那女的 ...

Testlink1.9.17使用方法(第一章 前言)

第一章 前言 QQ交流群:585499566 一.Testlink主要功能: 测试项目管理 测试需求管理 测试用例管理 测试计划的制定 测试用例对测试需求的覆盖管理 测试用例的执行 大量测试数据的度量 ...

Inno Setup入门(九)——修改安装过程中的文字显示

前面说到过可以使用不用的语言文件实现不同的显示方式,方便与国际接轨,事实上即使没有语言文件也可以实现修改.[Messages] 段用于定义安装程序和卸载程序中显示的消息.一般不需要创建 [Messag ...

Css3帧动画深入探寻,讲点项目中实际会碰到的问题

先加个副标题XD --如何解决background-size为100%下处理@keyframes 正是在项目中遇到副标题,才引起我更深入的探寻 先略带一下基本的css3动画 css3的动画实现是通过属 ...

mysql存储过程 cursor_MySql存储过程 CURSOR循环相关推荐

  1. mysql 存储过程声明式游标_Mysql 存储过程中使用游标循环读取临时表

    游标 游标(Cursor)是用于查看或者处理结果集中的数据的一种方法.游标提供了在结果集中一次一行或者多行前进或向后浏览数据的能力. 游标的使用方式 定义游标:Declare 游标名称 CURSOR ...

  2. mysql 执行存储过程_MySQL存储过程的3种循环

    1.概述 开发MySQL存储过程时,经常需要写循环逻辑:MySQL中支持三种循环分别是WHILE循环,REPEAT循环以及LOOP循环. 循环语句的格式如下: WHILE--DO--END WHILE ...

  3. MySQL入门之存储过程与存储函数

    ---------------------------------------------------------------------------------------------------- ...

  4. MySql 自定义函数,存储过程,游标的使用

    首先整理一下mysql内置的一些函数 MySQL内置函数 一.字符函数 (1)CONCAT()//字符连接 (2)CONCAT_WS()//使用指定的分隔符进行字符连接 (3)FORMAT()//数字 ...

  5. mysql视图及存储过程

    目录 mysql之视图 前言 理解: 视图语句 表用例-student 视图检查选项 举例: 注意: 视图的更新 视图的作用 mysql之存储过程 存储过程定义 存储过程的特性 关于存储过程的创建及删 ...

  6. mysql触发器和存储过程_MySql的存储过程和触发器

    Mysql的存储过程是类似于其它编程语言中的函数的功能,存储过程内部可以使用顺序循环和转移三种基本程序结构,而且整个存储过程可以接受和返回参数. 创建存储过程(procedure)时,因为其内部有以; ...

  7. MySql数据库学习--存储过程(1)

    在MySQL 5中,终于引入了存储过程这一新特性,这将大大增强MYSQL的数据库处理能力.在本文中将指导读者快速掌握MySQL 5的存储过程的基本知识,带领用户入门. 存储过程介绍 存储过程是一组为了 ...

  8. MySQL 笔记8 -- 存储过程和索引

    MySQL 笔记8 – 存储过程和索引 MySQL 系列笔记是笔者学习.实践MySQL数据库的笔记 课程链接: MySQL 数据库基础入门教程 参考文档: MySQL 官方文档 SQL 教程 一.存储 ...

  9. mysql 5.0存储过程学习总结

    mysql 5.0存储过程学习总结 一.创建存储过程 1.基本语法: create procedure sp_name() begin --- end 2.参数传递 二.调用存储过程 1.基本语法:c ...

最新文章

  1. ASP.NET管理状态的十种途径
  2. 架空输电线路运行规程_架空输电线路导、地线安全系数的规定
  3. C# 如何在PDF文档中创建表格
  4. 电脑硬件检测_好用的电脑硬件型号有哪些_江西南昌顺同谦科技|电脑||笔记本|...
  5. 什么是Pro*C/C++,嵌入式SQL,第一个pro*c程序,pro*c++,Makefile,Proc增删改查
  6. java中无法推断类型参数_Java中的推断异常
  7. 二十九、PHP框架Laravel学习笔记——Debugbar 调试器
  8. 加载不了ajax,简单的jquery ajax内容加载不起作用
  9. leetcode 9. 回文数(python)
  10. Atiit 如何手写词法解析器
  11. 2019免费微信营销软件排行榜
  12. SqlCommand详解以及SqlParameter的两种用法和DataTable基础
  13. Oracle 计算时间差
  14. 一周热图|陈飞宇成天梭表形象代言人;朱一龙赵丽颖登陆欧舒丹星球;张信哲代言欧宝娱乐...
  15. Android模拟屏幕鼠标
  16. python二级练习和考试复习(分别格式化输出0.002178对应的科学表示法形式)
  17. 清华系一呼百应更团结 北大系不扎堆儿更江湖
  18. 为了练好口语,你敢不敢每天读一遍,坚持一个月?
  19. ikun请进|爱心代码表白蔡徐坤来了
  20. 网狐U3D客户端登陆大联盟服务器成功无法进入大厅解决

热门文章

  1. cox回归RCS阈值效应函数cut.tab1.3发布
  2. WIN10共享剪切板
  3. 学习区块链(九)--创建僵尸军团进阶Ⅳ
  4. 转:2014年最酷的30个JavaScript库
  5. 搭档之家:这么拼的吗!?特朗普为大选放出狠话:当选后将永久终止工资税
  6. 爬虫抓取汉服小姐姐图片
  7. AirDrop功能更新设置默认关闭
  8. cocos2dx掼蛋_cocos2dx游戏开发——微信打飞机学习笔记(九)——BulletLayer的搭建...
  9. PET重建技术 MLEM迭代法(C++)(一) 原理及成像
  10. Python函数05/内置函数/闭包