我这一段的存储函数哪里写错了?

我这一段的存储函数哪里写错了?

img

CREATE function FUN1(IN N int)
RETURNS INT deterministic
BEGIN
    DECLARE TOTAL INT DEFAULT 0;
    while N > 0 do
        SET TOTAL := TOTAL + N;
        SET N := N - 1;
        END WHILE;
    RETURN TOTAL;
end;

SELECT FUN1(50);

设置语句分隔符:DELIMITER //
create语句最后使用//代替;

【以下回答由 GPT 生成】

这段存储函数中的问题在于变量的赋值语句使用了错误的语法。在MySQL中,变量的赋值应该使用:=而不是:=。所以,正确的代码应该是:

CREATE FUNCTION FUN1(IN N INT)
RETURNS INT DETERMINISTIC
BEGIN
    DECLARE TOTAL INT DEFAULT 0;
    WHILE N > 0 DO
        SET TOTAL = TOTAL + N;
        SET N = N - 1;
    END WHILE;
    RETURN TOTAL;
END;

SELECT FUN1(50);

这样修改之后,存储函数就能够正确执行了。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^