MySql中 delimiter

delimiter 常应用在存储过程 函数中

其中DELIMITER 定好结束符为"$$", 然后最后又定义为";", MYSQL的默认结束符为";". 

默认情况下,delimiter “;” 用于向 MySQL 提交查询语句。在存储过程中每个 SQL 语句的结尾都有个 “;”,如果这时候,每逢 “;” 就向 MySQL 提交的话,当然会出问题了。于是更改 MySQL 的 delimiter,上面 MySQL 存储过程就编程这样子了: 

  1. delimiter //;     -- 改变 MySQL delimiter 为:“//”   
  2.   
  3. drop procedure if exists pr_stat_agent //   
  4.   
  5. -- call pr_stat_agent ('2008-07-17', '2008-07-18')   
  6.   
  7. create procedure pr_stat_agent   
  8. (   
  9.    pi_date_from  date   
  10.   ,pi_date_to    date   
  11. )   
  12. begin   
  13.    -- check input   
  14.    if (pi_date_from is null) then   
  15.       set pi_date_from = current_date();   
  16.    end if;   
  17.   
  18.    if (pi_date_to is null) then   
  19.       set pi_date_to = pi_date_from;   
  20.    end if;   
  21.   
  22.    set pi_date_to = date_add(pi_date_from, interval 1 day);   
  23.   
  24.    -- stat   
  25.    select agent, count(*) as cnt   
  26.      from apache_log   
  27.     where request_time >= pi_date_from   
  28.       and request_time <  pi_date_to   
  29.     group by agent   
  30.     order by cnt desc;   
  31. end; //   
  32.   
  33. delimiter ; //   -- 改回默认的 MySQL delimiter:“;”   

MySQL delimiter 符号是可以自由设定的,你可以用 “/” 或者“” 等。但是 MySQL 存储过程中比较常见的用法是 “//” 和 “”。

你可能感兴趣的:(mysql)