python - MySQL游标使用最后一个游标更新所有列
问题描述
我正在尝试遍历 aqi_db 数据库中 aqi 表中的 City 和练习列。我在计算机中的其他数据库上做了完全相同的事情,它工作正常,但是当我创建新程序以在不同的表上使用时,数据库无法正常工作。
这是我的桌子的样子:
ID Country City Aqi lat lng time practice
1 Canada Acton 63 51.4925 -0.257252 2019-07-24 14:00:00 33
2 Canada Alameda 46 37.7936 -122.263 2019-07-24 07:00:00 33
3 Canada Altona 46 53.5557 9.94306 2019-07-24 17:00:00 33
5 Canada Amherst 31 42.8864 -78.8784 2019-07-24 10:00:00 33
6 Canada Athens 32 33.9458 -83.3722 2019-07-24 08:00:00 33
7 Canada Massa 54 30.2583 -97.7203 2018-05-03 16:00:00 33
对于每次迭代,我都试图连接 City 并练习和更新当前的练习行。所需的结果如下所示:
ID Country City Aqi lat lng time practice
1 Canada Acton 63 51.4925 -0.257252 2019-07-24 14:00:00 Acton33
2 Canada Alameda 46 37.7936 -122.263 2019-07-24 07:00:00 Alameda33
3 Canada Altona 46 53.5557 9.94306 2019-07-24 17:00:00 Altona33
5 Canada Amherst 31 42.8864 -78.8784 2019-07-24 10:00:00 Amherst33
6 Canada Athens 32 33.9458 -83.3722 2019-07-24 08:00:00 Athens33
7 Canada Massa 54 30.2583 -97.7203 2018-05-03 16:00:00 Massa33
但相反,它正在返回
ID Country City Aqi lat lng time practice
1 Canada Acton 63 51.4925 -0.257252 2019-07-24 14:00:00 Massa33
2 Canada Alameda 46 37.7936 -122.263 2019-07-24 07:00:00 Massa33
3 Canada Altona 46 53.5557 9.94306 2019-07-24 17:00:00 Massa33
5 Canada Amherst 31 42.8864 -78.8784 2019-07-24 10:00:00 Massa33
6 Canada Athens 32 33.9458 -83.3722 2019-07-24 08:00:00 Massa33
7 Canada Massa 54 30.2583 -97.7203 2018-05-03 16:00:00 Massa33
我已经检查了我的代码几次,我不明白为什么会这样。我的代码:
delimiter $$
CREATE PROCEDURE update_aqi()
begin
DECLARE v_city varchar(75);
DECLARE v_practice varchar(10);
DECLARE v_finished integer default 0;
DECLARE c1 CURSOR for select City, practice from aqi;
DECLARE continue handler for NOT FOUND set v_finished = 1;
open c1;
my_loop: LOOP
FETCH c1 into v_city, v_practice;
if v_finished = 1 then
leave my_loop;
end if;
UPDATE aqi SET practice = concat(v_city, v_practice);
END LOOP my_loop;
close c1;
end $$
call update_aqi();
进一步的目标:我不想用 concatenate(city, practice) 更新实践列中的每一行,我想触发接收 city 作为参数并返回值的 python 函数,该值将在实践列中更新。注意:python 函数将调用一个 api。关于如何去做的任何提示?
解决方案
推荐阅读
- python - 如何使用正则表达式 python 部分搜索单词
- android - Android AppCompActivity 工具栏未显示
- openmaptiles - 192天打造欧式瓷砖
- python - Python 中的 BrokenPipeError 但在 Perl 中没有
- python - 根据pandas中另一列中不同数组中元素的值获取列中数组的元素
- core-data - 未显示折线图数据
- r - lapply 如果在 data.table 中
- html - 仅针对较窄的屏幕修改内部 href 链接
- localization - 将 System.Globalization.DateTimeFormatInfo 短日期格式转换为 Windows.Globalization.DateTimeFormatting.DateTimeFormatter
- delphi - 在 Delphi 中更改单元的初始化顺序