Я хочу сделать что-то, что кажется немного сложным в 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? Если заканчивается первое, заканчивается и второе.