MySQL在创建存储过程的时候,如创建productpricing存储过程,如果使用的是Navicat等程序创建,代码是
CREATE PROCEDURE productpricing()
BEGIN
selectavg(prod_price) as priceaverage
fromproducts;
END;
但是,如果是在命令行界面,上述语句在from products;输入之后会报错
ERROR 1064 (42000): You have an error inyour SQL syntax; check the manual that
corresponds to your MySQL server versionfor the right syntax to use near '' at
line 4
原因在于,默认的MySQL语句分隔符为' ; ',在输入' ; '的时候,“以为”语句已经结束了,但实际上语句还没有结束。
解决方案:使用DELIMITER临时改变命令行的语句分隔符,在存储过程创建之后再修改分隔符为原来的" ;
mysql> DELIMITER //
mysql> CREATE PROCEDURE productpricing()
-> BEGIN
-> select avg(prod_price) aspriceaverage
-> from products;
-> END//
mysql> DELIMITER ;
运行正常
Query OK, 0 rows affected (0.08 sec)