当前位置: 首页 > 图文教程 > 数据库 > MYSQL > 实际应用:MySQL5存储过程的编写实践

MYSQL
Mysql中mysqldump命令使用详解
常见mysql错误代码详细解析
设置 MySql 数据同步
MySQL集群配置
ASP连接MySQL数据库的方法
linux操作系统下建立mysql镜像数据库
加大MySql的最大连接数
使用"函数递归"实现基于php和MySQL的动态树型菜单
基于MySQL的高性能数据库应用开发
在同一台机器上运行多个MySQL服务器
从MySQL到ORACLE程序迁移的注意事项
安全专家讲解Mysql故障详细的诊断过程
Mysql中日期和时间函数应用不用求人
你可能不知道 Mysql的常用命令收集
您可能不知道 MySQL表最大能达到多少
mysql5中遭遇的字符集问题及其解决方案
教你轻松的掌握 MYSQL连接字符集和校对
快速的掌握可以运行MySQL的操作系统
在服务器上安装使用 MySQL 的注意事项
简简单单掌握对MySQL无效数据的约束

MYSQL 中的 实际应用:MySQL5存储过程的编写实践


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-30   浏览: 82 ::
收藏到网摘: n/a

MySql5.0以后均支持存储过程,最近有空,研究了一把这个。

格式:

CREATE PROCEDURE 过程名 ([过程参数[,...]]) [特性 ...] 过程体

CREATE FUNCTION 函数名 ([函数参数[,...]]) RETURNS 返回类型 [特性 ...] 函数体

过程参数:

[ IN | OUT | INOUT ] 参数名 参数类型

函数参数:

参数名 参数类型

返回类型:

有效的MySQL数据类型即可

特性:

LANGUAGE SQL | [NOT] DETERMINISTIC | { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA } | SQL SECURITY { DEFINER | INVOKER } | COMMENT 'string'

过程体/函数体:格式如下:

BEGIN 有效的SQL语句END

我在这里不关心专有的特性,这些与SQL规范不兼容,所以characteristic(特性)的相关内容不作考虑。

//

在开发过程中有几点要注意:

1、存储过程注释:MySQL支持采用--或者/**/注释,其中前者是行注释,后者是段式注释

2、变量首先用declare申明,其中临时变量可以直接以@前缀修饰以供引用

3、直接采用MySQL的Administrator管理器编辑时,可以直接采用如下函数文本录入;

但若在脚本中自动导入存储过程或函数时,由于MySQL默认以";"为分隔符,则过程体的每一句

都被MySQL以存储过程编译,则编译过程会报错;所以要事先用DELIMITER关键字申明当前段分隔符

用完了就把分隔符还原。 如下所示:

DELIMITER $$ Stored Procedures and Functions DELIMITER ;

4、MySQL支持大量的内嵌函数,有些是和大型商用数据库如oracle、informix、sybase等一致,但也有些函数名称不一致,但功能一致;或者有些名称一致,但功能相异,这个特别对于从这些数据库开发转过来的DBA要注意。

5、存储过程或函数的调试:我目前还没有研究MySQL所带的各种工具包,还不清楚其提供了调试工具没有,不过编译错误相对好查找;至于业务流程的调试,可以采用一个比较笨的方法,就是创建一个调试表,在包体中各个流程点都插入一条记录,以观察程序执行流程。这也是一个比较方便的笨办法。^_^

下面是2个例子,提供了一种字串加