动态嵌入(嵌入式sql游标的主要作用)

lxf2023-08-03 22:10:01

bitsCN.com 前提:

表1。ddm _需求

system_id demand_id quotate_end_team 1 1 team1,team5,team2 1 2 tea3,team1,team,4

pk:quotate_end_team、demand _ id

表2,mc团队

team_nam view_order team1 1 team2 2

解决问题:

根据表2中的view_order对表1中的quote _ end _ team字段进行重新排序。

方法:

分隔符$ $
如果存在order_team_name $$,则删除过程

创建过程订单团队名称()

开始

声明order_before_teams文本;
声明temp_team_nam文本;
声明systemId decimal(10,0)无符号;
declare demandId char(6);
declare done int;

-定义光标1

为来自ddm_demand的SELECT system_id,demand_id,quotate_end_team声明rs_cursor游标。
为NOT FOUND SET done=1声明CONTINUE处理程序;

打开rs _ cursor
游标_循环:循环

将rs_cursor取到systemId,demandId,order _ before _ teams

如果done=1,则
离开cursor _ loop
end if;
如果order_before_teams不为空并且order _ before _ teams & # 39'然后
SET @ sqlstr = concat(" where team _ Nam in(& # 39;,替换(order_before_teams,","," & # 39;,'"),"');");
SET @ sqlstr = concat(" CREATE VIEW temporary _ team _ VIEW as SELECT team _ Nam,view_order FROM mc_team ",@ sqlstr);
-如果存在temporary_team_view,则删除视图;
从@sqlstr准备stmt
执行stmt

-调用光标2

调用update_ddm_demand(systemId,demand id);
删除视图temporary _ team _ view
end if;

end loop cursor _ loop
关闭rs _ cursor
END$$


删除过程(如果存在)update_ddm_demand $$

创建过程update _ DDM _ demand(systemId decimal(10,0) unsigned,demandId char(6))

BEGIN
declare temp _ team _ Nam文本;
declare order _ after _ teams text;
declare done int;

-Define Cursor 2
Declarers _ Cursor用于从temporary _ team _ view order by view _ order中选择team _ Nam的游标;
为NOT FOUND SET done=1声明CONTINUE处理程序;
SET order _ after _ teams = " ";
打开rs _ cursor
游标_循环:循环

将rs_cursor提取到temp_team_nam中;

如果done=1,则
离开cursor _ loop
end if;

-update table
set order _ after _ teams = concat(order _ after _ teams,",",temp _ team _ Nam);

end loop cursor _ loop

update DDM _ demand set quotate _ end _ team = subString(order _ after _ teams,2)其中system_id = systemId,demand _ id = demandId

关闭rs _ cursor
END$$

分隔符;

呼叫order _ team _ name

bitsCN.com adminjs.cn是一个以CSS、JavaScript、Vue、HTML为核心的前端开发技术网站。我们致力于为广大前端开发者提供专业、全面、实用的前端开发知识和技术支持。 在本网站中,您可以学习到最新的前端开发技术,了解前端开发的最新趋势和最佳实践。我们提供丰富的教程和案例,让您可以快速掌握前端开发的核心技术和流程。 Adminjs.cn还提供一系列实用的工具和插件,帮助您更加高效地进行前端开发工作。我们提供的工具和插件都经过精心设计和优化,可以帮助您节省时间和精力,提升开发效率。 在Adminjs.cn中,您可以找到您需要的一切前端开发资源,让您成为一名更加优秀的前端开发者。欢迎您加入我们的大家庭,一起探索前端开发的无限可能!