mysql游标示例 mysql游标简易教程

从mysql V5.5开始,进行了一次大的改变,就是将InnoDB作为默认的存储引擎。InnoDB支持事务,而且拥有相关的RDBMS特性:ACID事务支持,数据完整性(支持外键),灾难恢复能力等等。

现在简单总结一下游标的知识。

(一),认识游标(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; /*Third: now you can Fetch the row 把第一行数据写入变量中,游标也随之指向了记录的第一行*/

 REPEAT
 INSERT  INTO testTable(ID, Value)
 VALUES  (pID, pValue);
 FETCH  cur_record INTO pID, pValue;

 UNTIL  no_more_record = 1
 END REPEAT;
 CLOSE  cur_record;  /用完后记得用CLOSE把资源释放掉*/
END
时间: 2024-08-04 07:06:21

mysql游标示例 mysql游标简易教程的相关文章

mysql游标示例mysql游标简易教程

从mysqlV5.5开始,进行了一次大的改变,就是将InnoDB作为默认的存储引擎.InnoDB支持事务,而且拥有相关的RDBMS特性:ACID事务支持,数据完整性(支持外键),灾难恢复能力等等. 现在简单总结一下游标的知识. (一),认识游标(cursor) 就是一个可读的标识,用来标识数据取到什么地方了. (二),游标特性 1,只读 2,不滚动 3,不敏感的 (三),使用游标 需要强调的是,游标必须在定义处理程序之前被定义,但变量必须在定义游标之前被定义,顺序就是变量定义-游标定义-处理程序

cursor游标(mysql)

/* 游标 cursor 什么是游标?为什么需要游标 使用存储过程对sql进行编程的时候,我们查询的语句可能是数据是多个,它总是一口气全部执行,我们无法针对每一条进行判断.也就是说,我们无法控制程序的运行,所以引入了游标cursor cursor类似于java中的迭代器. 它利用查询语句生成一个游标,然后游标中有一个类似指针的东西.首先指在游标首,就是迭代器.不解释了 cursor 游标 declare声明: declare 游标名 cursor for select_statement; op

mysql 存储过程 示例代码

drop procedure if exists P_SEQUENCE; /** 暂省略包 @AUTO LIANGRUI 2014/6/27 T_PRO_PRODUCT 表 排序 对整个表进行按序号排序 根据序号从新自然排序 重复序号的安创建日期分配序号 测试阶段 测试调用 set @merid='TEST66'; call P_SEQUENCE(@merid); **/ create procedure P_PRODUCT_SEQUENCE( in v_merchar_id VARCHAR(1

macOS下MySQL 8.0 安装与配置教程

原文:macOS下MySQL 8.0 安装与配置教程 一.前言 1.本教程主要内容 适用Homebrew安装MySQL MySQL 8.0 基础适用于配置 MySQL shell管理常用语法示例(用户.权限等) MySQL字符编码配置 MySQL远程访问配置 2.本教程环境信息与适用范围 环境信息 软件/环境 版本/说明 macOS macOS High Sierra MySQL MySQL 8.0.12 适用范围 软件 版本 macOS macOS MySQL 8.0.x 二.MySQL安装

使用nodeJS创建API接口,连接mysql数据库(新手向简易版)

博主在学习安卓课程做期末程序的时候就一直想自己做API了,结果网上的教程感觉都太杂,很多都文不对题,找不到一个明确的思路,结果就只能放弃改用jdbc实现数据库交互,现在学了前端,又接触了一点nodeJS之后,才终于有了思路,最近也成功给自己放在服务器上的网站部署了API.现在就来分享一下,也顺便给自己留个备份. ps:只是自己突然想到的做法,而且个人觉得真的是简易版,可能不标准,但亲测能用. 一.前期准备 首先声明:不懂也没关系,直接仿照代码,需要修改的地方我会用红色标注出来,不过mysql一定

腾讯云服务器centos 6.5(jdk+tomcat+vsftp)、腾讯mysql数据库 及 tomcat自启动 配置教程

1.腾讯云数据库配置 1.考虑到安全性问题,,平常不使用root用户登录,新增一个用户名neil,用来管理项目的数据库 a.首先登录root创建db_AA数据库 b.在root用户下,创建neil用户,并对neil用户授权对db_AA数据库所有操作. GRANT ALL ON db_AA.* TO [email protected]"%" IDENTIFIED BY "XXXX"; 2.将现有数据导入到数据库中 注意:尽量不要使用Myeclipse.Navicat等

mysql安装图解 mysql图文安装教程(详细说明)-[转]

很多朋友刚开始接触mysql数据库服务器,下面是网友整理的一篇mysql的安装教程,步骤明细也有详细的说明. MySQL5.0版本的安装图解教程是给新手学习的,当前mysql5.0.96是最新的稳定版本. mysql 下载地址 http://www.jb51.net/softs/2193.html 下面的是MySQL安装的图解,用的可执行文件安装的,详细说明了一下!打开下载的mysql安装文件mysql-5.0.27-win32.zip,双击解压缩,运行“setup.exe”,出现如下界面 my

Bluemix云端数据库服务ClearDB MySQL使用示例———Python开发投票程序

越来越多的服务走向云端,看不见摸不着,让没接触过的我感觉有些茫然,IBM的云平台Blumemix上提供了很多服务,我这里就把学习使用ClearDBMySQL Database服务的过程给大家分享一下.这是一个PHP的投票小程序,针对主题"你曾后悔进入 IT 行业吗?"展开投票功能,基于简单的Cookie操作判断用户有没有投过票,如果没有投过票,就显示投票选项和按钮,不显示投票结果:如果已经投票了,就直接显示投票结果,而不能再次投票. 构建一个类似的应用程序的前提条件 一个 Bluemi

Oracle 游标示例,带异常处理

Oracle游标示例一则,带异常处理. DECLARE CURSOR c_dl IS SELECT ID, NSRSBH, WSPZXH, ZXYY_DM, HZRQ, SWJG_DM, GXSJ FROM T_GUOS_ZXXX WHERE gxsj > begin_gxsj; c_row c_dl%ROWTYPE; BEGIN FOR c_row IN c_dl LOOP BEGIN IF (c_row.GXSJ > max_gxsj) THEN BEGIN max_gxsj := c_r