簡體   English   中英

存儲過程定義上的MySQL錯誤1064

[英]MySQL Error 1064 on Stored Procedure Definition

我是MySQL程序的新手。 我只是試圖在數據集上運行一個游標,然后為每一行運行一個不同的過程(我碰巧知道它的工作原理)。 我在下面的第三行中收到錯誤代碼1064:

CREATE PROCEDURE `safecycle`.`sp_aggregateAllPORDaily` ()
BEGIN
  DECLARE done INT DEFAULT FALSE;
  DECLARE porID SMALLINT UNSIGNED;
  DECLARE cur1 CURSOR FOR SELECT ID FROM point_of_recycle;
  DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;

  OPEN cur1;

  read_loop: LOOP
    FETCH cur1 INTO porID;
    IF done THEN
      LEAVE read_loop;
    END IF;
    CALL sp_aggregatePORDaily(porID);
  END LOOP;

  CLOSE cur1;
END

我將頭撞在牆上已經有一段時間了,非常感謝您的幫助。

您尚未更改定界符,因此第一個; 遇到終止整個語句。

DELIMITER $$

CREATE PROCEDURE
    blah blah blah
END$$

DELIMITER ;

通過以這種方式更改定界符,您可以安全地定義您的多語句過程,並嵌入法線; 在其中,然后以'new'分隔符結束create語句。 之后,您將還原標准定界符並照常進行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM