存储过程与游标
来源:互联网 发布:推荐算法有哪些 编辑:程序博客网 时间:2024/04/30 22:44
查看存储过程定义的方法
有以下4种:
1. 使用show procedure status命令查看存储过程的定义
2. 查看某个数据库中所有存储过程名
select name from mysql.proc where db='yourdb' and type='procedure';
- 使用MySQL命令”show create procedure 存储过程名;”
- 在系统的information_schema数据库中,使用select语句查询存储过程相关信息。
select * from information_schema.rountines where rountine_name='yourprocname';
存储过程与函数的区别与联系
联系:
- 应用程序调用存储过程或函数时,只需要提供过程名或者函数名,以及参数信息,将若干条MySQL指令发送到MySQL服务器上,节省了网络开销。
- 存储过程或函数可重复使用,减少了数据库开发人员,尤其是应用程序开发人员的工作量
- 可以增强安全访问控制。可以设定只有某些数据库用户才具有某些存储过程或函数的执行权
区别:
- 函数必须有一个返回值,且必须决定返回值的数据类型。存储过程则对于返回值没有限定条件,由out或者inout参数定义。
- 在函数中可使用select…into语句为某个变量赋值,但不能使用select语句返回结果(集);存储过程则没有限制。
- 函数可以直接嵌入到SQL语句中,而存储过程需要单独调用,需要使用call关键字。
- 函数中的限制较多,比如不能使用与事务操作相关的操作。
- 应用程序调用函数时,通常将函数封装到SQL字符串中调用。而在调用存储过程时,必须使用call关键字调用。如果希望获取存储过程的返回值,则必须给存储过程的out参数活inout参数传递MySQL会话变量。
错误处理类型、错误触发条件、错误处理程序
错误处理类型
- continue
- exit
错误触发条件
用于定义自定义错误处理程序运行的时机。有3种取值
- MySQL错误代码
- ANSI标志错误代码
- 自定义错误触发条件
自定义错误处理程序
错误发生后,MySQL会立即执行自定义错误处理程序中的MySQL语句,自定义错误处理程序也可以是一个begin-end语句块。
游标的使用步骤
- 声明游标
declare 游标名 cursor for select 语句;
- 打开游标
open 游标名
- 从游标中提取数据
fetch 游标名 into 变量名1,变量名2
- 关闭游标
close 游标名
如何遍历游标的结果集
delimiter $$create procedure update_course_score_proc(in c_no int)modifies sql databegin declare s_no int;declare grade int;declare state char(20);declare score_cursor cursor for select student_no,score from choose where course_no=c_no;declare continue handler for 1329 set state='error';open score_cursor;repeatfetch score_cursor into s_no,grade;set grade = grade + 5;if(grade>100) then set grade = 100;end if;if(grade >=55 && grade<=59) then set grade=60;end if;update choose set score=grade where student_no=s_no and course_no=c_no;until state='error'end repeat;close score_cursor;end$$delimiter ;
0 0
- 游标与存储过程
- 存储过程与游标
- Mysql存储过程与游标
- Oracle 游标 与 存储过程
- 存储过程DIY2----游标与循环
- 传智播客学习之存储过程与游标
- 存储过程与游标 结合在一起使用
- oracle存储过程与游标的使用
- 存储过程与游标的配合使用
- 游标与存储过程,sql统计示例
- oracle存储过程与游标使用实例
- 存储过程、游标
- 存储过程+游标
- 存储过程和游标
- 存储过程使用游标
- 存储过程返回游标
- oracle存储过程,游标
- 存储过程游标
- php导出word文档样式,与需求给你的word文档一模一样。
- Node.js 之基于文件的模块系统
- Cocos Studio工程分析
- android 改变ImageView的颜色(Alpha值、Red值、Green值、Blue值)
- 原路归并排序
- 存储过程与游标
- Redis AOF持久化
- python脚本调用c/c++库,以opencv的python接口为例
- POJ 2828 Buy Tickets(线段树)
- xrdp安装配置
- muduo事件循环类图简介
- C - The C Answer (2nd Edition) - Exercise 1-2
- 解析XML字段
- 南阳oj 题目169 素数