gpt4 book ai didi

mysql - 在带有子查询的 MySQL 中使用游标时出错

转载 作者:行者123 更新时间:2023-11-29 13:55:43 25 4
gpt4 key购买 nike

我有以下存储过程:

DECLARE CURSORITO CURSOR FOR SELECT  issues.id FROM issues

DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done=1;

OPEN CURSORITO;

REPEAT
FETCH CURSORITO INTO c_id ;

IF NOT done THEN
-- TOTAL HOURS
SELECT SUM(hours) INTO c_Tot_Horas FROM time_entries WHERE issue_id=c_id;
INSERT INTO TOTAL (ID,TOT) VALUES c_id,c_Tot_Horas ;
END IF;
UNTIL done END REPEAT;

但是当“查询总小时数”没有数据时,进程会从重复部分退出,并将“完成”变量设置为 true

我应该如何做才能很好地完成该过程,即围绕所有光标走动?

最佳答案

您不需要为此使用光标。

INSERT INTO total(ID, TOT)
SELECT issue_id, SUM(hours)
FROM time_entries t
/*optionally you can add*/
INNER JOIN issues i ON t.issue_id = i.id
/*if you need to filter by joining*/
GROUP BY issue_id

光标非常慢,当你不需要它们时,不惜一切代价避免使用它们。

关于mysql - 在带有子查询的 MySQL 中使用游标时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15900126/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com