我正在尝试创建一个存储过程,但我不断收到错误消息:
#1064-您的SQL语法有误;在第3行的'NOT DETERMINISTIC CONTAINS SQL SQL SECURITY DEFINER COMMENT''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版
您需要在过程的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; $$
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句