`
wwty
  • 浏览: 543059 次
  • 性别: Icon_minigender_1
  • 来自: 北京-郑州
社区版块
存档分类
最新评论

mysql存储过程之光标篇

阅读更多

本篇主要参考mysql手册

 

光标必须在声明处理程序之前被声明,并且变量和条件必须在声明光标或处理程序之前被声明。

 

声明光标

DECLARE cursor_name CURSOR FOR select_statement

这个语句声明一个光标。也可以在子程序中定义多个光标,但是一个块中的每一个光标必须有唯一的名字。

SELECT语句不能有INTO子句。

open光标

OPEN cursor_name

这个语句打开先前声明的光标。

fetch光标

FETCH cursor_name INTO var_name [, var_name] ...

这个语句用指定的打开光标读取下一行(如果有下一行的话),并且前进光标指针。

close光标

CLOSE cursor_name

这个语句关闭先前打开的光标。

如果未被明确地关闭,光标在它被声明的复合语句的末尾被关闭。

 

示例:

CREATE PROCEDURE curdemo()
BEGIN
  DECLARE done INT DEFAULT 0;
  DECLARE a CHAR(16);
  DECLARE b,c INT;
  DECLARE cur1 CURSOR FOR SELECT id,data FROM test.t1;
  DECLARE cur2 CURSOR FOR SELECT i FROM test.t2;
  DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
 
  OPEN cur1;
  OPEN cur2;
 
  REPEAT
    FETCH cur1 INTO a, b;
    FETCH cur2 INTO c;
    IF NOT done THEN
       IF b < c THEN
          INSERT INTO test.t3 VALUES (a,b);
       ELSE
          INSERT INTO test.t3 VALUES (a,c);
       END IF;
    END IF;
  UNTIL done END REPEAT;
 
  CLOSE cur1;
  CLOSE cur2;
END

 

分享到:
评论

相关推荐

    mysql存储过程实现分页

    ### MySQL存储过程实现分页 #### 背景与需求 在数据库操作中,分页是一种常见的需求,尤其是在处理大量数据时。通过分页技术,可以有效地减少每次查询的数据量,提高系统的响应速度和用户体验。MySQL作为一种广泛...

    Mysql存储过程和函数

    ### MySQL存储过程与函数详解 #### 一、概述 MySQL是一种广泛使用的开源关系型数据库管理系统,在数据管理和存储方面提供了强大的支持。其中,存储过程和函数是MySQL提供的两种重要的编程特性,它们可以帮助开发者...

    mysql创建存储过程

    ### MySQL 创建存储过程详解 #### 一、存储程序概述 **存储程序**是可以在MySQL服务器中定义并存储的一组SQL语句。它们的功能类似于过程化的编程语言中的函数或过程,可以封装复杂的逻辑,并且能够在数据库层面...

    Mysql手册20-存储过程和函数

    MySQL存储过程和函数是数据库编程的重要组成部分,它们提供了在数据库服务器上执行特定任务的能力。本部分详细介绍了存储程序和函数的各个方面,包括它们的创建、语法、权限控制以及与性能优化相关的概念。 首先,...

    完整精品数据库课件 MySQL从入门到精通 第10章 存储过程和函数(共19页).ppt

    MySQL是世界上最流行的关系型数据库管理系统之一,而存储过程和函数是其强大功能的重要组成部分。本章节将深入探讨这两个概念,以及如何在MySQL中创建、调用、查看、修改和删除它们。 1. **创建存储过程和函数** -...

    Mysql-事务与存储过程.pdf

    ### MySQL中的事务与存储过程 #### 事务管理 ##### 6.1.1 事务的概念 事务是数据库中一组逻辑上具有完整性的操作序列。它包含了一组SQL语句,这些语句要么全部成功执行,要么全部不执行。事务的核心特性包括: -...

    Java实现用Mysql存取图片操作实例

    在Java编程中,有时我们需要将图片等大容量的二进制数据存储到数据库中,MySQL提供了BLOB(Binary Large Object)类型,专门用于存储大块的二进制数据。本实例将详细介绍如何使用Java和MySQL进行图片的存取操作。 ...

    MySQL5.1中文参考手册完全版.chm

    这里还会涵盖事务处理、视图、存储过程和触发器等高级功能,让开发者能够高效地编写SQL代码。 “管理”章节涉及数据库的日常维护,包括备份与恢复、权限管理、性能监控、复制与集群配置等内容。这有助于数据库管理...

    MySQL 5.1中文手冊

    1.7.3. MySQL论坛上的MySQL社区支持 1.8. MySQL标准的兼容性 1.8.1. MySQL遵从的标准是什么 1.8.2. 选择SQL模式 1.8.3. 在ANSI模式下运行MySQL 1.8.4. MySQL对标准SQL的扩展 1.8.5. MySQL与标准SQL的差别 1.8.6. ...

    mysql5.1中文手册

    列类型存储需求 11.6. 选择正确的列类型 11.7. 使用来自其他数据库引擎的列类型 12. 函数和操作符 12.1. 操作符 12.1.1. 操作符优先级 12.1.2. 圆括号 12.1.3. 比较函数和操作符 12.1.4. ...

    MySQL 5.1官方简体中文参考手册

    11.5. 列类型存储需求 11.6. 选择正确的列类型 11.7. 使用来自其他数据库引擎的列类型 12. 函数和操作符 12.1. 操作符 12.1.1. 操作符优先级 12.1.2. 圆括号 12.1.3. 比较函数和操作符 12.1.4. 逻辑操作符 12.2. ...

    MySQL常用命令查询集锦

    以上内容仅是MySQL命令的简要介绍,实际操作中还有许多其他高级功能和选项,如索引、视图、触发器、存储过程等,需要根据具体需求深入学习。掌握这些基本命令,能帮助你有效地管理和维护MySQL数据库。

    MySQL 5.1参考手册

    MySQL 5.1参考手册.chm 前言 1. 一般信息 1.1. 关于本手册 1.2. 本手册采用的惯例 1.3. MySQL AB概述 1.4. MySQL数据库管理系统概述 1.4.1. MySQL的历史 1.4.2. MySQL的的主要特性 1.4.3. MySQL稳定性 1.4.4. MySQL...

    MySQL 5.1参考手册 (中文版)

    1.7.3. MySQL论坛上的MySQL社区支持 1.8. MySQL标准的兼容性 1.8.1. MySQL遵从的标准是什么 1.8.2. 选择SQL模式 1.8.3. 在ANSI模式下运行MySQL 1.8.4. MySQL对标准SQL的扩展 1.8.5. MySQL与标准SQL的差别 1.8.6. ...

    MySQL 5.1参考手册中文版

    11.5. 列类型存储需求 11.6. 选择正确的列类型 11.7. 使用来自其他数据库引擎的列类型 12. 函数和操作符 12.1. 操作符 12.1.1. 操作符优先级 12.1.2. 圆括号 12.1.3. 比较函数和操作符 12.1.4. 逻辑操作符 ...

    MySQL5.1参考手册官方简体中文版

    11.5. 列类型存储需求 11.6. 选择正确的列类型 11.7. 使用来自其他数据库引擎的列类型 12. 函数和操作符 12.1. 操作符 12.1.1. 操作符优先级 12.1.2. 圆括号 12.1.3. 比较函数和操作符 12.1.4. 逻辑操作符 12.2. ...

    mysql命令文档

    MySQL是世界上最流行的关系型数据库管理系统之一,用于存储和管理数据。这篇文档主要涵盖了MySQL的一些基本命令,包括连接MySQL、修改密码、添加用户以及数据库相关的操作。 1. **连接MySQL** - **本地连接**: 在...

    MySQL 数据库对服务器端光标的限制

    MySQL 数据库中的服务器端光标是一项特性...但如果是需要频繁滚动或更新结果的场景,可能需要考虑其他数据处理方法,如存储过程或使用客户端缓存机制。理解并有效利用这些特性,可以帮助优化应用程序的性能和资源管理。

Global site tag (gtag.js) - Google Analytics