首页 > 代码库 > mysql存储过程

mysql存储过程

  首先,需要执行符DELIMITER ,建议用//,即在存储过程开始前定义delimiter //,在结束后加上//,最后加上DELIMITER ; 具体原因@参考文章1写的很清楚,不再赘述。

参考文章1中的示例:

技术分享
delimiter //;     -- 改变 MySQL delimiter 为:“//”   
  
drop procedure if exists pr_stat_agent //   
  
-- call pr_stat_agent (‘2008-07-17‘, ‘2008-07-18‘)   
  
create procedure pr_stat_agent   
(   
   pi_date_from  date   
  ,pi_date_to    date   
)   
begin   
   -- check input   
   if (pi_date_from is null) then   
      set pi_date_from = current_date();   
   end if;   
  
   if (pi_date_to is null) then   
      set pi_date_to = pi_date_from;   
   end if;   
  
   set pi_date_to = date_add(pi_date_from, interval 1 day);   
  
   -- stat   
   select agent, count(*) as cnt   
     from apache_log   
    where request_time >= pi_date_from   
      and request_time <  pi_date_to   
    group by agent   
    order by cnt desc;   
end; //   
  
delimiter ; //   -- 改回默认的 MySQL delimiter:“;”   
View Code

 

mysql存储过程