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
-
[63] memory prefetch浅析
-
[53] 转载:cassandra读写性能原理分析
-
[52] 深入浅出cassandra 4 数据一致性问
-
[41] MySQL半同步存在的问题
-
[39] 获取Dom元素的X/Y坐标
-
[39] 《web前端最佳实践》—高维护性css
-
[39] 字符引用和空白字符
-
[37] 基本排序算法的PHP实现
-
[36] javascript插入样式
-
[35] JS中如何判断字符串类型的数字