Хранимая процедура MySQL с курсором - PullRequest
0 голосов
/ 23 апреля 2019

Из таблицы «redis-state» я хочу получить данные с курсором в таблице и написать эту процедуру, но получаю ошибку

объявить не найден 1064 код ошибки

в строке 10.

Цель - напечатать таблицу со всеми строками. Один отпечаток для каждой записи в таблице.

table

[! [Введите описание изображения здесь] [2]] [2]

    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;

1 Ответ

1 голос
/ 23 апреля 2019

Я думаю, что проблема с этим утверждением:

DECLARE done INT DEFAULT FALSE;

вы пытаетесь присвоить значение по умолчанию false типу данных INT?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...