错误信息
CREATE FUNCTION test_fun1(num1 FLOAT,num2 FLOAT) RETURNS FLOAT
BEGIN
DECLARE SUM FLOAT DEFAULT 0;
SET SUM=num1+num2;
RETURN SUM;
END $
SELECT test_fun1(1,2)$
在cmd中MySQL语句用declare就会报错,并且无法识别$,报错结果如下
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near
问题解决
在运行的语句前面加上DELIMITER $,添加了delimiter后就不报错误了
DELIMITER $
CREATE FUNCTION test_fun1(num1 FLOAT,num2 FLOAT) RETURNS FLOAT
BEGIN
DECLARE SUM FLOAT DEFAULT 0;
SET SUM=num1+num2;
RETURN SUM;
END $
SELECT test_fun1(1,2)$
当在MySQL中创建自定义函数时,使用DECLARE声明变量会导致语法错误,因为默认的语句结束符不是$。解决方法是在函数定义前添加`DELIMITER $`,将结束符临时改为$,然后在函数定义结束后再改回来。这样可以避免语法错误,成功创建函数。例如,创建名为test_fun1的加法函数,通过设置delimiter并正确使用DECLARE、SET和RETURN语句,可以实现预期功能。
2132

被折叠的 条评论
为什么被折叠?



