Процедура MySQL безрезультатно - PullRequest
0 голосов
/ 25 января 2019

Я хочу создать курсор, который подсчитывает, сколько строк в таблице (объявлено с именем: tickets), и результат должен быть вставлен в новую таблицу (объявленную с именем: sqi_1 ). Обе таблицы уже созданы вне процедуры.

Таблица «sqi_1» имеет 3 столбца: «ID» (автоинкремент), «Дата» (sysdate) и «num» (в которых должно храниться значение счетчика).


Однако моя процедура возвращает 0 затронутых строк. Процедура должна вернуть 1 затронутую строку, потому что основной выбор (объявленный перед курсором) возвращает 1 строку, которая должна быть вставлена ​​в таблицу sqi_1.

Кроме того, предложение select concat не возвращается.

DELIMITER //
create procedure test25()

/*SQI 1 numerador*/

 begin 

  -- Variables locales
 Declare sqi1_num int;
    Declare no_hay_mas_registros int default 0;


  -- declaramos cursor
    Declare cursor1 cursor for 

    select count(*) from tickets t 
    where t.issueType= 'Incident';

declare continue handler for not found set no_hay_mas_registros = 1;

   -- se abre el cursor
    open cursor1;
   -- se van tomando los datos hasta que lleguen al final
    loop1:loop
    fetch cursor1 into sqi1_num;


    if (no_hay_mas_registros=1) then 
    Select concat ('el resultado es' , sqi1_num);

        leave loop1;
        end if;

   -- se cargan los datos en la tabla sqi_1
 INSERT INTO sqi_1 (Date, numerador) values (sysdate, sqi1_num);

    end loop loop1;
    close cursor1;
End//
DELIMITER ;
...