码迷,mamicode.com
首页 > 数据库 > 详细

MySQL存储过程

时间:2014-11-16 21:34:27      阅读:414      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   ar   使用   sp   div   log   bs   

  下面是一个MySQL存储过程的简单例子,  目的是返回最新插入的一条记录的id值。   

 demiliter |
 
     drop  procedure if exists addUser |
 
     create procedure addUser(in pname varchar(40),in birthday date,out pid int)
 
         begin
 
         insert into user(name,birthday) values (pname,birthday);
 
                     select last_insert_id into pid;
 
         end |
 
     demilter;

        MySQL中执行一条语句的依据是分号(";"),碰到了”;“则会将之前的输入作为一条语句来执行。 demiliter |会将判断的依据由”;“换成”|“,碰到”|“认为是一条语句的结束。如果不进行转换,遇到”;“将之前的执行则一定会出错。  

       上面的例子现用 demiliter |会将判断的依据由”;“换成”|“,最后再用demiliter ;会将判断的依据由”|“换成”;“。

       创建存储过程的语法是 create procedure名称(输入/输出,参数名,参数类型),对应于例子中的 create procedure addUser(in pname varchar(40),in birthday date,out pid int)。
       begin和end之间的就是存储过程要完成的功能。

      

       create procedure的参数类型有in,out,inout三种。

       in和out,inout的不同点:修改的结果将不能返回,可以看下面的例子。      

 demiliter //
 
     drop  procedure if exists in_paramter_test//
 
     create procedure  in_paramter_test(in p_in int)
 
         begin
         select  p_in ;
                   set  p_in =2;
                   select  p_in ;
         end //
 
     demilter;

      设置临时变量:mysql > set @p_in = 1;

      mysql >call in_paramter_test(@p_in);

     +--------+

     |   p_in  |

     +--------+

      |     1    |

      +--------+

 

     +--------+

     |   p_in  |

     +--------+

      |     2    |

      +--------+

       mysql >select @p_in;

     +--------+

     |   p_in  |

     +--------+

      |    1    |

      +--------+

     使用out的例子:

 demiliter //
 
     drop  procedure if exists out_paramter_test//
 
     create procedure  out_paramter_test(out p_out int)
 
         begin
         select  p_out ;
                   set  p_in =2;
                   select  p_out ;
         end //
 
     demilter;

       执行和in相同的操作,结果都是2.


       @用户变量,连接参数。

 

 

      

 

MySQL存储过程

标签:style   blog   color   ar   使用   sp   div   log   bs   

原文地址:http://www.cnblogs.com/lnlvinso/p/4101915.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!