Я хочу сделать что-то, что кажется немного сложным в MySQL. На самом деле, я хочу открыть курсор, сделать цикл и в этом цикле открыть второй курсор, используя данные из предыдущей выборки, которые будут выполнены, и повторно зациклировать результаты.
DECLARE idind INT;
DECLARE idcrit INT;
DECLARE idindid INT;
DECLARE done INT DEFAULT 0;
DECLARE done2 INT DEFAULT 0;
DECLARE curIndicateur CURSOR FOR SELECT id_indicateur FROM indicateur;
DECLARE curCritereIndicateur CURSOR FOR SELECT C.id_critere FROM critere C where C.id_indicateur=idind;
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
set idindid=54;
OPEN curIndicateur;
REPEAT
FETCH curIndicateur INTO idind;
open curCritereIndicateur;
REPEAT
FETCH curIndicateur INTO idcrit;
INSERT INTO SLA_DEMANDE_STATUS (iddemande,idindicateur,indicateur_status,progression) values('0009',idcrit,'OK',10.0);
UNTIL done END REPEAT;
close curCritereIndicateur;
UNTIL done END REPEAT;
CLOSE curIndicateur;
На самом деле, как сделать "Пока не сделано" по-разному для двух курсоров, потому что вы можете объявить только один обработчик для SQLSTATE? Если первый конец, второй конец тоже.