代码改变世界

MySQL存储过程

2011-08-30 09:01  会被淹死的鱼  阅读(335)  评论(0编辑  收藏  举报

MySQL 5.0 中引入了存储过程, 在其他的DBMS中早就有了存储过程.

存储过程作为一种已经被认证的技术, 它具有一定的通用性, 但每个DBMS都有自己不同的一些语法,在一定程度上, 存储过程的可移植性比较好.

存储过程可以使系统运行得更快, 而且存储过程可以复用. 因为存储过程是预先编译好的, 所以运行速度快, 可以在存储过程中调用其他存储过程, 实现了可重用.

存储过程配合mysql的event, 可以实现一些定时或周期性的任务.

存储过程与函数(function)的不同

  • 存储过程没有返回值, 函数有返回值
  • 存储过程的参数列表有in, out, inout三种参数, 函数只有in一种

存储过程基本语法:

CREATE PROCEDURE sp_name ([proc_parameter[,...]])
             [characteristic ...] routine_body

调用存储过程, 可以在存储过程中调用另一个存储过程

call sp_name()

删除存储过程

drop procedure sp_name;

编写存储过程的一般步骤

delimiter //

create procedure sp_name ()
begin
    declare var_name var_type;
    body...
end
//

delimiter ;