繁体   English   中英

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

[英]mysql error (#1064) stored procedure creation error

我正在尝试创建一个存储过程,但我不断出错:

#1064-您的SQL语法有误; 在第3行的“ NOT DETERMINISTIC CONTAINS SQL SQL SECURITY DEFINER COMMENT''B”附近检查与您的MySQL服务器版本相对应的手册以使用正确的语法

我的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版

您需要在过程的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; $$

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM