在MySQL中,如何将更新的行数从子存储过程返回到父存储过程?
在MySQL中,如何将更新的行数从子存储过程返回到父存储过程? 使用游标从父存储过程调用子存储过程 例: 存储过程1(父级): 存储过程2(子级): 存储过程2并不总是插入行。如何知道在存储过程1的执行结束时更新了多少行 我尝试使用@@ROW\u COUNT并使用一个变量,但无法获得预期的结果。有没有办法获取更新的行?在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
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;