示例存储过程如下
DELIMITER //
DROP PROCEDURE IF EXISTS `curdemo` //
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 //
DELIMITER ;
20.2.11.1.声明光标
DECLARE cursor_name CURSOR FOR select_statement
这个语句声明一个光标。也可以在子程序中定义多个光标,但是一个块中的每一个光标必须有唯一的名字。
SELECT语句不能有INTO子句。
20.2.11.2. 光标OPEN语句
OPEN cursor_name
这个语句打开先前声明的光标。
20.2.11.3. 光标FETCH语句
FETCH cursor_name INTO var_name [, var_name] ...
这个语句用指定的打开光标读取下一行(如果有下一行的话),并且前进光标指针。
光标必须在声明处理程序之前被声明,并且变量和条件必须在声明光标或处理程序之前被声明。
20.2.11.4. 光标CLOSE语句
CLOSE cursor_name
这个语句关闭先前打开的光标。
如果未被明确地关闭,光标在它被声明的复合语句的末尾被关闭。
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
当光标取不到数据就 SET done = 1;
DELIMITER //
delimiter命令来把语句定界符从 ;变为//。这就允许用在程序体中的;定界符被传递到服务器而不是被mysql自己来解释。
20.2.11.7. DROP PROCEDURE IF EXISTS
DROP PROCEDURE IF EXISTS
这个语句被用来移除一个存储程序或函数。即,从服务器移除一个制定的子程序。
参考:http://dl.iteye.com/topics/download/82db8bb1-7c55-3e74-9f56-de5f8e004ded
分享到:
相关推荐
**初识 PostgreSQL 存储过程** 在数据库管理领域,存储过程是不可或缺的一部分,它是由一组预编译的 SQL 语句组成,用于执行特定任务。根据百度百科的定义,存储过程是在大型数据库系统中,一组为了完成特定功能的 ...
2. 在教学过程中,注意将理论与实践相结合,利用存储单元将常见数据结构进行讲解。 3. 明确不同的数据类型在计算中占据的存储空间,帮助学生更好地理解数据类型的值范围和对应操作。 4. 引导学生经历建立数据模型、...
"初识计算机PPT课件" 计算机的基本概念: 计算机是一种电子设备,能够执行用户的指令,进行数据处理和存储。计算机的种类很多,可以分为台式计算机、便携式计算机、掌上计算机等。 台式计算机: 台式计算机是一...
【初识Excel教学设计】 Excel是一款广泛应用于数据管理和分析的电子表格软件,对于初学者来说,理解其基本功能和操作是至关重要的。本教学设计针对初中信息技术课程,旨在引导初一学生逐步熟悉Excel,帮助他们建立...
C语言初识详解 C语言,一种强大的、通用的编程语言,是计算机科学教育和实际开发中的基础。它以其简洁的语法和高效的执行而闻名,是理解和学习其他编程语言的基础。对于初学者来说,理解C语言的核心概念至关重要,...
文件的写入和读取是操作系统与存储设备之间的交互过程,操作系统会将文件写入到存储设备中,并读取存储设备中的文件。 云计算云存储 云计算云存储是基于云计算技术的存储解决方案,提供了高可靠性、高可扩展性和高...
### 初识Python #### Python简介 Python是一种高级编程语言,以其简洁明了的语法而闻名,这使得它成为新手入门编程的理想选择。作为一种多范式的语言,Python支持多种编程风格,包括面向对象编程、过程化编程以及...
在IT行业中,文件是数据和信息的基本载体,...掌握文件类型、扩展名和压缩技术,能帮助我们更高效地工作,无论是在开发、测试还是数据管理的过程中。希望这次的初识文件之旅,能为你打开一扇通向更广阔IT世界的大门。
- `初识文件分析.dsp`:这是Visual Studio 6时代的项目文件,存储了关于工程设置、编译选项、链接器设置等信息。 - `初识文件分析.dsw`:同样来自Visual Studio,它是工作区文件,管理一个或多个相关项目的集合。 ...
数据存储是指将采集到的数据存储在分布式系统中的过程,包括Hadoop、ODPS/飞天流式计算引擎等技术。数据处理是指对采集到的数据进行处理和分析的过程,包括数据分析与挖掘、数据可视化等技术。 大数据的关键领域 ...
MyBatis 是一个支持普通 SQL 查询、存储过程以及高级映射的优秀持久层框架。它消除了几乎所有的 JDBC 代码和参数的手动设置以及结果集的检索。MyBatis 使用简单的 XML 或注解进行配置和原始映射,将接口和 Java 的 ...
《初识计算机》这门幼儿园课程旨在引导孩子们初步了解计算机的发展历程、基本组成部分以及其可能的应用。以下是课程中的主要知识点: 1. 计算机发展过程: - 结绳记事:这是人类早期的一种计数方式,是计算概念的...
【初识计算机教学设计】 本教学设计针对高一新生,旨在引导学生深入理解计算机的硬件构成,提升他们的实践能力和团队协作精神。课程开始时,通过播放计算机硬件的视频,激发学生对计算机内部结构的好奇心,进而鼓励...
MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。在初识 MyBatis 的项目中,我们将深入理解这个框架的核心功能和优势,以及如何将其应用于实际的 Java Web 开发中。 MyBatis 的主要特点...
它包含的资源可能包括教学演示案例、上机练习参考答案以及课后作业参考答案,这些都是学习过程中非常重要的组成部分。 第一章"初识Java"通常会涵盖以下基础概念和知识点: 1. **Java的历史与特点**:Java由Sun ...
PL/SQL是一种过程化语言,用于编写数据库操作的存储过程、函数和触发器,增强了数据库的可编程性。 4. **数据库备份与恢复** Oracle 11g提供了多种备份策略,包括完整备份、增量备份和差异备份。RMAN(Recovery ...
本篇文章将围绕《头歌初识Redis答案》的内容进行展开,详细介绍Redis的基础知识、数据类型及操作、事务与监视机制、持久化策略以及主从同步等方面的内容。 #### 基础概念 - **内存存储**:Redis主要基于内存进行...