Mysql中的存储过程
Mysql 5.0 推出来的一个功能,在我看来和oracle差不多的,语法上稍微有一点点不同,下面写了一个例子模板,大家用到时可以很容易套用。
mysql> delimiter // --语句结束符更改为//
--定义存储过程
mysql>create procedure ptest(out return_val int)
begin
declare a1 ,b1 int default 5; --定义变量
declare cur1 cursor for select a from test; --定义游标
declare exit handler for not found begin insert into test_error(msg) values(\'ptest not found\'); set b1=1 ;end; --定义异常处理(not found)
declare exit handler for sqlexception set b1=1;--定义异常捕获及处理(sqlexception 表示sql执行异常时)
open cur1; --打开游标
repeat
fetch cur1 into a1;
until b1=1 --出现任何异常,程序退出
end repeat;
close cur1;
set return_val=a1; --变量赋值
end;
//
mysql> delimiter ; --语句结束符更改回;
--如何调用存储过程:
mysql>call ptest(@va);
注:
1.创建存储子程序需要CREATE ROUTINE权限
2.查询存储过程的定义SHOW CREATE PROCEDURE ptest\\G
3.查询存储过程的状态SHOW CREATE PROCEDURE STATUS LIKE \'ptest\'\\G
参考:
http://dev.mysql.com/doc/refman/5.1/zh/stored-procedures.html
建议继续学习:
扫一扫订阅我的微信号:IT技术博客大学习
- 作者:Incessant 来源: Incessant
- 标签: 存储过程
- 发布时间:2009-10-11 22:36:09
- [54] IOS安全–浅谈关于IOS加固的几种方法
- [52] android 开发入门
- [52] 如何拿下简短的域名
- [51] 图书馆的世界纪录
- [49] Go Reflect 性能
- [49] Oracle MTS模式下 进程地址与会话信
- [47] 【社会化设计】自我(self)部分――欢迎区
- [46] 读书笔记-壹百度:百度十年千倍的29条法则
- [37] 程序员技术练级攻略
- [29] 视觉调整-设计师 vs. 逻辑