MySQL——存储过程

来源:互联网 发布:多核单片机 编辑:程序博客网 时间:2024/06/11 00:33

定义

存储过程的定义很简单
创建

create procedure pro_name()begin.........end

调用

call pro_name()

主体中一些语句会带有分号,如果你使用 mysql客户端程序来定义一个包含分号字符的存储程序,问题就出现了,默认情况下, mysql用分号作为分隔符,以你必须重新定义暂时性的分隔符。
这样就将//作为分隔符了,定义完过程后,记得更改回来。

mysql> delimiter //

示例

mysql> delimiter //mysql> create procedure sim(OUT pa INT)    -> begin    -> select count(*) INTO pa from user;    -> end//Query OK, 0 rows affectedmysql> delimiter ;mysql> call sim(@a);Query OK, 1 row affectedmysql> select @a;+----+| @a |+----+| 21 |+----+1 row in setmysql> 

存储过程大致分为,有入参无出参 ;有入参有出参;无入参无出参;无入参有出参,出参是列表
。给出简单的示例。
数据库中有user表,表中有id,name,status三个字段
只有入参

CREATE PROCEDURE inp (IN pa VARCHAR(20)) begin insert into user(name) values(pa);end//

有入有出

CREATE PROCEDURE inandout (IN inpa INT ,OUT outpa VARCHAR(20)) begin select name INTO outpa from user where id=inpa;end//

只有出参,且为列表

CREATE PROCEDURE outp () begin select * from user;end//