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)