簡體   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