MySQL 命令行客户机的分隔符

默认的MySQL语句分隔符为;mysql命令行实用程序也使用;作为语句分隔符。

如果命令行实用程序要解释存储过程自身内的;字符,则它们最终不会成为存储过程的成分,这会使存储过程中的SQL出现句法错误。

解决办法是临时更改命令行实用程序的语句分隔符,如下所示:

DELIMITER //
CREATE PROCEDURE productpricing()
BEGIN
    SELECT AVG(prod_price) AS priceaverage
    FROM products;
END //
DELIMITER;

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

最后,为恢复为原来的语句分隔符,可使用DELIMITER ;。除符号外,任何字符都可以用作语句分隔符。

原文地址:https://www.cnblogs.com/ooo0/p/14202571.html