带游标的MySQL存储过程
从表“redis state”中,我想用游标在表中获取数据,并编写了这个过程,但我得到了一个错误 声明未找到1064错误代码 在第10行 目的是打印表格的所有行。表中的每个条目打印一次 [![在此处输入图像描述][2][2]带游标的MySQL存储过程,mysql,sql,stored-procedures,Mysql,Sql,Stored Procedures,从表“redis state”中,我想用游标在表中获取数据,并编写了这个过程,但我得到了一个错误 声明未找到1064错误代码 在第10行 目的是打印表格的所有行。表中的每个条目打印一次 [![在此处输入图像描述][2][2] CREATE PROCEDURE redisatestatedata() BEGIN DECLARE macaddress varchar(50); DECLARE redisstate varchar(50); DECLA
CREATE PROCEDURE redisatestatedata()
BEGIN
DECLARE macaddress varchar(50);
DECLARE redisstate varchar(50);
DECLARE atehistorystate varchar(50);
DECLARE data_list varchar(50000);
DECLARE done INT DEFAULT FALSE;
DECLARE data_cursor CURSOR FOR
SELECT macaddress,redisstate,atehistorystate
FROM redis-atestate;
DECLARE CONTINUE HANDLER FOR NOT FOUND
SET done = TRUE;
open data_cursor;
GET_DATA:loop FETCH data_cursor INTO
macaddress,redisstate,atehistorystate;
IF v_finished = 1 THEN
leave get_data;
ENDIF;
SET data_list = concat("Difference in state ATE:",macaddress,": redis ",redisstate,": dbstate ",atehistorystate);
SELECT data_list;
loop get_data;
CLOSE data_cursor;
END;
我认为问题在于这一说法:
DECLARE done INT DEFAULT FALSE;
您试图将默认值false分配给数据类型INT?很抱歉,我尝试添加有问题的代码,但没有成功,因此粘贴的图像您可以通过复制和粘贴来添加代码,然后选择它并按
ctrl+k
(或编辑框上方的{}
符号)。另外,请添加准确(完整)的错误消息,包括引用代码的部分,因为它将直接显示错误的位置。这(错误消息和代码为文本)使我们能够更快地识别语法问题,如不带引号的表名。