[英]mysql error (#1064) stored procedure creation error
I'm trying to create a stored procedure but i keep getting error: 我正在尝试创建一个存储过程,但我不断出错:
#1064 - You have an error in your SQL syntax; #1064-您的SQL语法有误; check the manual that corresponds to your MySQL server version for the right syntax to use near 'NOT DETERMINISTIC CONTAINS SQL SQL SECURITY DEFINER COMMENT '' B' at line 3
在第3行的“ NOT DETERMINISTIC CONTAINS SQL SQL SECURITY DEFINER COMMENT''B”附近检查与您的MySQL服务器版本相对应的手册以使用正确的语法
My SQL is as follows: 我的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$$
I've tried to include DELIMITER but no result. 我尝试加入DELIMITER,但没有结果。 I guess the problem might be in the quotes.
我想问题可能出在引号中。 Can someone point me out the solution?
有人可以指出解决方案吗? Thanks!
谢谢!
MySQL version 5.5 MySQL 5.5版
You need a varchar length on the return statement of the procedure something as 您需要在过程的return语句上添加一个varchar长度,例如
RETURNS VARCHAR(1024)
So the procedure becomes 所以程序变成
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.