这是我试图在mysql中创建的函数:
CREATE FUNCTION isPerfectSquare (testNum INT)
RETURNS BOOLEAN
BEGIN
DECLARE sqrtint INT;
SET sqrtint = sqrt(testNum);
DECLARE result BOOLEAN DEFAULT FALSE;
IF sqrtint * sqrtint = testNum THEN
SET result = TRUE;
END IF;
RETURN result;
END;|
我将分隔符设置为|,否则我甚至无法做到这一点。 mysql回来时附近有错误:
DECLARE result BOOLEAN DEFAULT FALSE;
有人能帮我看看我做错了什么吗?我刚刚编写了一个工作正常的不同函数,它以类似的方式运行,而且我无法看到我这次做出的不同之处就是让它出错了。
答案 0 :(得分:1)
所有声明都必须在块的开头:
CREATE FUNCTION isPerfectSquare (testNum INT)
RETURNS BOOLEAN
BEGIN
DECLARE sqrtint INT;
DECLARE result BOOLEAN DEFAULT FALSE;
SET sqrtint = sqrt(testNum);
IF sqrtint * sqrtint = testNum THEN
SET result = TRUE;
END IF;
RETURN result;
END;|
DECLARE 仅允许在 BEGIN ... END 复合语句中使用,并且必须在其开始之前,在任何其他语句之前。