mysql命令行客户机的分隔符---DELIMITER用法

默认的MySQL语句分隔符为;(正如你已经在迄今为止所使用的MySQL语句中所看到的那样)。mysql命令行实用程序也使用;作为语句分隔符。如果命令行实用程序要解释存储过程自身内的;字符,则它们最终不会成为存储过程的成分,这会使存储过程中的SQL出现句法错误。解决办法是临时更改命令行实用程序的语句分隔符,如下所示:

MariaDB [TEST]> DELIMITER //
MariaDB [TEST]> CREATE PROCEDURE abc()
    -> BEGIN
    -> SELECT AVG(list) AS a1 FROM tablename;
    -> END //
Query OK, 0 rows affected (0.002 sec)

MariaDB [TEST]> delimiter ;

其中,DELIMITER //告诉命令行实用程序使用//作为新的语句结束分隔符,可以看到标志存储过程结束的END定义为END //而不是END;。这样,存储过程体内的;仍然保持不动,并且正确地传递给数据库引擎。最后,为恢复为原来的语句分隔符,可使用DELIMITER ;。除\符号外,任何字符都可以用作语句分隔符。


版权声明:本文为m0_37264220原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。