`
stephen830
  • 浏览: 3010522 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

mysql 存储过程的简单例子

 
阅读更多

 

mysql 存储过程的简单例子

 

 

-- 定义新的语句分隔符//
delimiter //
create procedure pd016()
begin
	-- ----------------------------------
	-- 本存储过程主要实现以下操作
	-- 1.查询游戏表的数据
	-- 2.根据游戏表数据去获取类型表的信息
	-- ----------------------------------
	
	-- 创建一个临时表
	create temporary table if not exists tmpTable
	(
		id int(11) NOT NULL AUTO_INCREMENT,
		game_id int(11),
		catalog_name varchar(100),
		primary key(id)
	) engine=memory;
	
	-- 显示临时表数据
	select * from tmpTable;
	
	begin

		-- declare 必须紧跟着在begin之后定义
		declare m_ga_id int;
		declare m_game_name_cn varchar(100);
		
		declare m_catalog_game_id int;
		declare m_catalog_name varchar(100);
		
		-- 定义游标结束标志
		declare m_stop_flag int default 0;
		
		-- 定义需要使用的游标
		declare cursor_game cursor for  select ga_id,ga_name_cn from t021_game;
		declare cursor_catalog cursor for SELECT ca_game_id,ca_name FROM t025_catalog where ca_game_id=m_ga_id;
		
		-- 如果用了游标cursor,则必须定义这个游标结束标志,用来判读游标是否到底
		-- 如果有多个游标,那么这些游标共用这个结束标志
		-- 在读取游标所在记录时,必须先判断结束标志
		-- 如果多个游标是嵌套关系,那么内层游标结束之后,必须将结束标志恢复为0,否则会影响外层游标的使用
		declare continue handler for not found set m_stop_flag=1;
		
		-- 打开前面定义的游标
		open cursor_game;
		
		-- 循环开始
		-- 从游标当前位置取出1条记录,执行后游标会自动会移动到下一条记录
		-- 将取出的字段赋给定义好的变量,注意游标字段与变量的一一对应关系
		repeat fetch cursor_game into m_ga_id,m_game_name_cn;
			
			-- 判读游标是否到底
			if m_stop_flag=0 then
	
				-- 打开游标
				open cursor_catalog;
				
				-- 内层循环开始
				repeat fetch cursor_catalog into m_catalog_game_id,m_catalog_name;
	
					-- 判读游标是否到底
					if m_stop_flag=0 then
						-- 将数据存入临时表中
						insert into tmpTable(game_id,catalog_name) values(m_ga_id,m_catalog_name);
					end if;
	
				-- 游标结束标志为1,表示游标到底,内层循环结束。
				until m_stop_flag=1 end repeat;
				
				-- 关闭游标
				close cursor_catalog;
				
				-- 设置游标结束标志为0(0=未结束),这样可以让外层循环继续执行。
				set m_stop_flag=0;
				
			end if;
			
		-- 游标结束标志为1,表示游标到底,循环结束。
		until m_stop_flag=1 end repeat;
		
		-- 关闭游标
		close cursor_game;
		
	end;
		
	-- 显示临时表数据
	select * from tmpTable;
	
	-- 结束前清除临时表数据
	truncate table tmpTable;
	
end;
-- //表示创建存储过程语句的结束
//
-- 恢复语句分隔符为;
delimiter ;

 

 

分享到:
评论

相关推荐

    mysql存储过程实例

    MySQL 存储过程实例 MySQL 存储过程实例详细介绍了 MySQL 存储过程的开发步骤,本节将通过具体的实例讲解 PHP 是如何操纵 MySQL 存储过程的。 创建存储过程 存储过程的创建是 MySQL 存储过程的基础,MySQL 5.0 ...

    pb使用odbc调用mysql存储过程的例子.txt

    给了一个小的mysql 存储过程的例子。同时给出了一个在pb9中调用的例子.本例子是给出的mysql8.0的存储过程。对于5.7一下的现在odbc很难有支持

    MySQL存储过程实例教程

    ### MySQL存储过程实例教程 #### 存储过程概念与优势 存储过程,作为数据库中一种预编译的SQL语句集合,旨在实现特定功能并存储于数据库内,用户仅需指定其名称及必要参数即可调用执行。这种设计极大地简化了...

    mysql存储过程简单应用编写

    在本篇总结文档中,我们将探讨MySQL存储过程的简单应用,包括循环结构、创建临时表、删除数据、分页查询以及动态存储过程的编写。 首先,让我们了解一下什么是存储过程。存储过程是一组为了完成特定功能的SQL语句集...

    mysql存储过程之返回多个值的方法示例

    本文实例讲述了mysql存储过程之返回多个值的方法。分享给大家供大家参考,具体如下: mysql存储函数只返回一个值。要开发返回多个值的存储过程,需要使用带有INOUT或OUT参数的存储过程。咱们先来看一个orders表它的...

    mysql复杂存储过程实例(游标、临时表、循环、递归)

    本资源结合实例实现一个复杂的存储过程,存储过程中有用到游标、临时表、循环、递归等知识,sql文件附有实例数据表创建的sql语句。

    MySQL存储过程的异常处理方法

    本实例展示了如何在MySQL存储过程中实现异常处理,以捕获并处理可能出现的错误。 首先,我们注意到在创建存储过程`myProc`时,使用了`delimiter $$`来改变MySQL客户端的语句分隔符,这是为了在存储过程中使用多个...

    MYSQL的存储过程实例文档

    ### MySQL存储过程详解 #### 一、存储过程概述 存储过程是一种特殊类型的SQL代码集合,它们预先被编译并存储在数据库服务器上。用户可以通过指定存储过程名称并提供必要的参数来执行这些存储过程。这种机制提供了...

    PHP和MySQL存储过程实例

    根据给定的信息,我们可以深入探讨PHP与MySQL存储过程的相关知识点,包括如何在MySQL中使用`CONCAT`函数、创建存储过程以及如何通过PHP脚本来调用这些存储过程。 ### 使用 CONCAT 函数 #### 标题中的示例 ```sql ...

    mysql 存储过程 实战

    ### MySQL存储过程实战知识点 #### 一、存储过程概述 MySQL 存储过程是一种预编译的 SQL 脚本,它可以包含复杂的逻辑控制结构、循环等操作,并且可以接受参数,执行完后还可以返回结果。存储过程可以提高数据处理...

    mysql存储过程调试工具

    在描述中提到的"mysql存储过程调试工具"应该就是这类工具的一个实例,它无需复杂的安装步骤,只需解压后即可开始使用,适应于多种MySQL版本,提高了开发者的灵活性。 在实际使用中,调试工具通常包含以下核心功能:...

    存储过程文档--mysql

    存储过程文档--MySQL 存储过程是 MySQL 中的一个强大功能,它允许用户预先将常用的或复杂的工作写入 SQL 语句,并将其存储起来,以便在以后的数据库操作中可以快速调用和执行。存储过程可以提高数据库的执行速度,...

    MySQL存储过程系统学习资料

    在"MySQL存储过程.doc.doc"文档中,可能会详细讲解这些概念,并通过实例来展示如何创建、调用和管理存储过程,包括如何处理各种异常情况,以及如何利用存储过程提高数据库应用的效率和安全性。深入理解并熟练运用...

    一个MySQL的简单存储过程

    #### 三、示例分析:一个简单的MySQL存储过程 本示例展示了一个名为`tbu.proc_sum_bill`的存储过程,该过程用于统计指定时间段内特定用户或所有用户的总消费额,并支持过滤已结算或未结算的账单。 ##### 1. 参数...

    Java调用Mysql存储过程

    在Java编程中,调用MySQL存储过程是一种常见的数据库交互方式,尤其在处理复杂业务逻辑或大量数据操作时。本文将详细讲解如何通过Java来执行MySQL的存储过程。 首先,了解存储过程的基本概念。存储过程是预编译在...

    MySQL存储过程.pdf

    综上所述,“MySQL存储过程.pdf”这份文档可能会详细解释以上各个知识点,并通过实例展示如何在实际开发中应用这些概念。通过深入学习和理解这些内容,开发者能够更有效地利用MySQL存储过程提升数据库应用的效率和...

    Mysql存储过程和函数

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

Global site tag (gtag.js) - Google Analytics