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
-
[903] WordPress插件开发 -- 在插件使用 -
[135] 解决 nginx 反向代理网页首尾出现神秘字 -
[56] 整理了一份招PHP高级工程师的面试题 -
[54] Innodb分表太多或者表分区太多,会导致内 -
[54] 如何保证一个程序在单台服务器上只有唯一实例( -
[52] 全站换域名时利用nginx和javascri -
[52] 海量小文件存储 -
[52] CloudSMS:免费匿名的云短信 -
[51] 用 Jquery 模拟 select -
[49] ps 命令常见用法
