在MySQL中,如何将更新的行数从子存储过程返回到父存储过程?

在MySQL中,如何将更新的行数从子存储过程返回到父存储过程?,mysql,stored-procedures,Mysql,Stored Procedures,在MySQL中,如何将更新的行数从子存储过程返回到父存储过程? 使用游标从父存储过程调用子存储过程 例: 存储过程1(父级): 存储过程2(子级): 存储过程2并不总是插入行。如何知道在存储过程1的执行结束时更新了多少行 我尝试使用@@ROW\u COUNT并使用一个变量,但无法获得预期的结果。有没有办法获取更新的行?DECLARE done INT DEFAULT FALSE; DECLARE done INT DEFAULT FALSE; DECLARE _a, _b, _c, VARCHA

在MySQL中,如何将更新的行数从子存储过程返回到父存储过程? 使用游标从父存储过程调用子存储过程

例:

存储过程1(父级):

存储过程2(子级):

存储过程2并不总是插入行。如何知道在存储过程1的执行结束时更新了多少行

我尝试使用@@ROW\u COUNT并使用一个变量,但无法获得预期的结果。有没有办法获取更新的行?

DECLARE done INT DEFAULT FALSE;
DECLARE done INT DEFAULT FALSE;
DECLARE _a, _b, _c, VARCHAR(50);
DECLARE total_count NUMBER DEFAULT 0; <- declare new var total_count
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,_outParameter);
        total_count :=total_count+_outParameter
    END IF;
    SELECT total_count FROM DUAL;
END LOOP;
CLOSE AdditionalConstraint_Cursor;
声明a、b、c、VARCHAR(50); 声明总计数数默认为0<代码>声明完成INT DEFAULT FALSE; 声明a、b、c、VARCHAR(50);
声明总计数数默认为0;我按照建议执行了以下操作,并在SP1 DECLARE\u outParameter INT中添加了一行;在SP2中,我在参数列表中添加了以下内容:OUT outParameter INT,并最终设置outParameter=ROW_COUNT();仍然得到输出-1。我做错了什么吗?在插入或更新后的子过程中,只需提交,然后尝试获取过程2中的
行计数()
的值。如果返回正确答案,则继续执行过程1。我按照建议执行了以下操作,并在SP1 DECLARE\u outParameter INT中添加了行;在SP2中,我在参数列表中添加了以下内容:OUT outParameter INT,并最终设置outParameter=ROW_COUNT();仍然得到输出-1。我做错了什么吗?在插入或更新后的子过程中,只需提交,然后尝试获取过程2中的
行计数()
的值。如果返回正确答案,则继续执行程序1。
INSERT IGNORE INTO tblLuke (a, b, c) ....
DECLARE done INT DEFAULT FALSE;
DECLARE _a, _b, _c, VARCHAR(50);
DECLARE total_count NUMBER DEFAULT 0; <- declare new var total_count
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,_outParameter);
        total_count :=total_count+_outParameter
    END IF;
    SELECT total_count FROM DUAL;
END LOOP;
CLOSE AdditionalConstraint_Cursor;