Как вернуть число обновленных строк из дочерней хранимой процедуры в родительский в MySQL? Резервная хранимая процедура вызывается из родителя с помощью курсора.Как вернуть число обновленных строк из дочерней хранимой процедуры в родительский в MySQL?
Пример:
хранимых процедур 1 (родитель):
DECLARE done INT DEFAULT FALSE;
DECLARE _a, _b, _c, VARCHAR(50);
DECLARE Mogambo_Cursor CURSOR FOR
SELECT a, b, c, FROM tblMogambo;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
OPEN Mogambo_Cursor;
read_loop: LOOP
FETCH Mogambo_Cursor INTO _a, _b, _c;
IF done THEN
LEAVE read_loop;
ELSE
CALL storedProcedure2 (_a, _b, _c);
END IF;
END LOOP;
CLOSE AdditionalConstraint_Cursor;
хранимых процедур 2 (ребенок):
INSERT IGNORE INTO tblLuke (a, b, c) ....
хранимых процедур 2 не всегда вставить строку. Как узнать, сколько строк было обновлено в конце выполнения хранимой процедуры 1?
Я пробовал с @@ ROW_COUNT и использовал переменную, но не смог получить ожидаемый результат. Есть ли способ получить обновленные строки?
Я сделал следующее, как было предложено, и я добавил строку в SP1 DECLARE _outParameter INT; И в SP2 я добавил следующее: OUT outParameter INT в списке параметров и, наконец, SET outParameter = ROW_COUNT(); По-прежнему получать выход -1. Я делаю что-то неправильно? – Sunil
В дочерней процедуре после вставки или обновления просто поместите фиксацию, а затем попытайтесь получить значение 'ROW_COUNT()' в процедуре2. Если это возвращает правильный ответ, перейдите к процедуре1. –