MySQL存储过程 与 自定义函数

来源:互联网 发布:tomcat 域名 生效 编辑:程序博客网 时间:2024/06/06 09:51
查看MySQL存储过程:
select name from mysql.proc where db="数据库名称" and type="procedure";
show procedure status;


查看存储过程或函数的创建代码:
show create procedure proc_name;
show create function func_name;
(不论是函数还是存储过程,都是相对于某一个数据库而言,如果没有通过图形工具;则需要先选中数据库)


存储过程中 @可以定义用户变量,存在与客户端。
row_count()   MySQL内置函数,返回本次操作修改行数。


自定义函数function的调用就像内置函数一样调用。
存储过程  CALL PROCEDURE 过程名(参数);


自定义函数:
create function function_name(参数 类型,...) returns 返回值类型
begin
SQL语句;
return 返回值;
end
结束符
(用“delimiter 结束符”,如果想一次执行多条语句修改语句结束符)


定义存储过程:
create procedure procedure_name(输入输出类型  参数  类型,...)
begin
SQL语句;
SQL语句 into @系统变量定义名;
end
结束符
(输入输出类型包含:in   out   inout,包含in的变量是输入时候必须的,out的是传入系统定义变量)


e.g   定义:create procedure pro_name(out param int unsigned).....
        调用:CALL procedure pro_name(@num);
 select @num;
-- @num是用户自定义的,起什么名称都行。本次登录有效。


自定义函数 与 存储过程 区别:


1.存储过程实现的功能要复杂一些;而函数的针对性更强
2.存储过程可以返回多个值;函数的返回值只能有一个。
3.存储过程一般独立执行;而函数可以作为其他的SQL语句的组成部分来出现。


存储过程的修改只能修改一些简单的属性,不行修改过程体;想修改过程体只能drop重写。
0 0
原创粉丝点击