MySQL хранимая процедура не работает должным образом Вложенные курсоры - PullRequest
0 голосов
/ 14 мая 2019

Обратите внимание, что первый курсор получает 3 результата, а когда я вставляю, он вставляет только 1. Раньше, когда у меня не было открытых curs2, он работал нормально, но теперь нет.Возможно, я пропустил некоторые с переменными done и done2, так как я пишу хранимую процедуру через долгое время.Пожалуйста, посмотрите, можете ли вы найти что-то не так.Спасибо


BLOCK1: begin

    declare done INT DEFAULT FALSE;
    declare gid BIGINT;
    declare activity_name VARCHAR(255) ;
    declare type_1 VARCHAR(255) ;
    declare shop_activity_id BIGINT;
    declare curs CURSOR for select id, activityName, `Type`, shopActivityId from gantttask where `Type` = 'Project';

    open curs;
        LOOP1: loop
        fetch curs into gid, activity_name, type_1, shop_activity_id;
        if done then
            leave LOOP1;
        end if;
        insert into gantttask_result VALUES (gid, activity_name, type_1, shop_activity_id);

        BLOCK2: begin
            declare done2 INT DEFAULT FALSE;
            declare gid2 BIGINT;
            declare activity_name2 VARCHAR(255) ;
            declare type_2 VARCHAR(255) ;
            declare shop_activity_id2 BIGINT;
            declare curs2 CURSOR for select id, activityName, `Type`, shopActivityId from gantttask where `Type` != 'Project' and shopActivityId = shop_activity_id order by id;

            open curs2;
                LOOP2: loop
                fetch curs2 into gid2, activity_name2, type_2, shop_activity_id2;
                if done2 then
                    leave LOOP2;
                end if;

                end loop LOOP2;
            close curs2;
        end BLOCK2;

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