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
-
[319] WordPress插件开发 -- 在插件使用 -
[151] 解决 nginx 反向代理网页首尾出现神秘字 -
[92] IOS安全–浅谈关于IOS加固的几种方法 -
[49] Linux Used内存到底哪里去了? -
[49] 二维码的生成细节和原理 -
[48] 浏览器的工作原理:新式网络浏览器幕后揭秘 -
[48] Hacker News 排名算法工作原理 -
[48] 中间件和稳定性平台 -
[48] Shell的那些事儿 -
[48] 到底什么是MVC?
