Запуск этой подпрограммы на HeidiSQL, и она работает с 0 затронутыми строками, даже при том, что затрагивается ровно 1 строка.оба оператора select, кажется, отлично работают вне этой хранимой процедуры.
BEGIN
DECLARE someId INT;
DECLARE done INT DEFAULT FALSE;
DECLARE cur1 CURSOR FOR
select anotherId from tableA
where yetAnotherId IN(another select statement);
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
OPEN cur1;
read_loop: LOOP
IF done THEN
LEAVE read_loop;
END IF;
FETCH cur1 INTO someId;
update tableB
set x = 'hello', y = 'world'
where something = someId;
END LOOP;
CLOSE cur1;
END;
Я хотел бы получить представление о том, что может быть не так со структурой этой процедуры.Мне кажется, что даже курсор должен содержать 1 запись.
Спасибо
РЕДАКТИРОВАТЬ: похоже, 'someId' соответствует поле таблицы с тем же именем, поэтому проблема.Это было решено сейчас.