mysql存储过程分隔符错误

guykilcj  于 2021-06-24  发布在  Mysql
关注(0)|答案(1)|浏览(257)

我试图实现一个存储过程来创建用户余额的快照,但我总是在第5行中得到一个错误,即语法错误,并且我还没有找到该语法错误的答案:

DROP PROCEDURE IF EXISTS createSnapshot;

DELIMITER //

CREATE PROCEDURE createSnapshot()
BEGIN
INSERT INTO balance_history (uid,coin_id,balance) SELECT uid,coin_id,amount FROM balance;

DECLARE done INT DEFAULT FALSE;

DECLARE cursor1 CURSOR FOR SELECT primary_key,timestamp FROM balance_history WHERE timestamp < DATE_SUB(NOW(), INTERVAL 7 DAY); 

DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;

DECLARE id INT;

DECLARE time1 TIMESTAMP;

OPEN cursor1;

read_loop: LOOP;
    IF done THEN
      LEAVE read_loop;
    END IF

    FETCH cursor1 INTO id,time1;
END LOOP

CLOSE cursor1;
END//

分隔符;

woobm2wo

woobm2wo1#

mysql存储过程、函数等。。有一些关于变量可以在哪里声明的规则。通常,一个块的开始是最好的;尽管某些类型的局部变量必须在其他类型之后声明。
这是一个很好的参考开始在mysql文档中寻找细节。

相关问题