gpt4 book ai didi

MYSQL游标实现问题

转载 作者:行者123 更新时间:2023-11-29 14:45:44 25 4
gpt4 key购买 nike

我正在使用以下存储过程,其中编写了以下光标代码(我正在使用 PHPmyadmin 来执行代码

create procedure cursorproc(OUT p_out DECIMAL(10,2))
begin

declare l_salary, l_total DECIMAL(10,2);

declare cur_1 cursor for select line_distance from elements;

open cur_1;

set l_total = 0;

loop

fetch cur_1 into l_salary;


set l_total = l_total + l_salary;

end loop;

close cur_1;

set p_out = l_total;

end;

以及表架构:

CREATE TABLE IF NOT EXISTS `elements` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`distance` int(11) NOT NULL,
`repeat` int(2) NOT NULL,
`interval` varchar(11) NOT NULL,
`eta` varchar(11) NOT NULL,
`best` varchar(11) NOT NULL,
`line_distance` int(5) NOT NULL,
`line_time` varchar(11) NOT NULL,
`intensity` varchar(11) NOT NULL,
`description` varchar(255) NOT NULL,
`best_time_event` varchar(50) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=215 ;

我收到以下错误:

ERROR -  #1329 - No data - zero rows fetched, selected, or processed

可能是什么问题?请帮忙

最佳答案

我对 MySQL 不太了解,但是错误消息非常清楚 - 你从不检查你的获取是否实际返回数据/达到 EOF,所以即使你的查询不再返回数据,你也会尝试获取。搜索 MySQL 文档以获取有关“CONTINUE HANDLER”的信息。

更重要的问题是:为什么要为此使用存储过程?为什么 - 如果你必须 - 你使用一个显式循环,其中一个简单的

select sum(line_distance) from elements

应该足够了吗?

关于MYSQL游标实现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6992143/

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