我是一个有存储过程的新手。下面生成语法错误。
“您的SQL语法有错误;请检查与MySQL服务器版本相对应的手册,在第3行的“”附近使用正确的语法”

CREATE PROCEDURE get_user_association_list (IN uid INT)
BEGIN
DECLARE rolelist VARCHAR(255);
DECLARE role_id INT;
DECLARE cur1 CURSOR FOR SELECT assoc_type_id FROM cause_users_assoc WHERE user_id = uid;
OPEN cur1;
REPEAT
FETCH cur1 INTO role_id;
SET rolelist = CONCAT(rolelist, role_id);
SET rolelist = CONCAT(rolelist, ',');
UNTIL done END REPEAT;
CLOSE cur1;
RETURN rolelist;
END;

请帮忙。

最佳答案

在定义过程时,似乎需要使用DELIMITER命令将语句分隔符从;更改为其他值。这使得过程体中使用的;分隔符能够传递到服务器,而不是由MySQL本身解释。
因此,您可能需要尝试以下操作:

DELIMITER $$

CREATE PROCEDURE get_user_association_list (IN uid INT)
BEGIN

-- // Your stored procedure body, using semicolon delimiters

END $$

DELIMITER ;

进一步阅读:
MySQL 5.1 Reference Manual: Defining Stored Programs

关于mysql - 存储过程语法错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3251871/

10-11 02:47