mysql错误(#1064)存储过程创建错误

时间:2014-10-22 13:45:59

标签: mysql stored-procedures phpmyadmin

我正在尝试创建存储过程,但我一直收到错误:

#1064 - 您的SQL语法出错;检查与您的MySQL服务器版本对应的手册,以便在第3行“非确定性包含SQL SQL安全性定义注释”B'附近使用正确的语法

我的SQL如下:

DELIMITER $$
CREATE FUNCTION `prodcat_descendants` (idcat INTEGER(11) )
    RETURNS VARCHAR
    NOT DETERMINISTIC
    CONTAINS SQL
    SQL SECURITY DEFINER
    COMMENT ''
BEGIN
   RETURN (select GROUP_CONCAT(DISTINCT id_category SEPARATOR ',') from cms_prodcategories where id_parent=idcat and active='1');
END$$

我试图包括DELIMITER但没有结果。我想这个问题可能在引号中。 有人能指出我的解决方案吗? 谢谢!

MySQL版本5.5

1 个答案:

答案 0 :(得分:1)

您需要在过程的return语句中使用varchar长度

RETURNS VARCHAR(1024)

所以程序变为

DELIMITER $$
CREATE FUNCTION `prodcat_descendants` (idcat INTEGER(11) )
    RETURNS VARCHAR(1024)
    NOT DETERMINISTIC
    CONTAINS SQL
    SQL SECURITY DEFINER
    COMMENT ''
BEGIN
   RETURN (select GROUP_CONCAT(DISTINCT id_category SEPARATOR ',') from cms_prodcategories where id_parent=idcat and active='1');
END; $$