我是靠谱客的博主 默默可乐,最近开发中收集的这篇文章主要介绍Mysql 数据迁移引发的sql 双重 for 循环 存储过程的编写 (包含Mysql 5.7 JDBCType 为 json 的字段的操作 ),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

这次数据迁移主要涉及的数据为,从一张表迁移到另一张表,同时将一列 JDBCType JSON (JsonArray)的数据拆分成多个字段,这里用到了存储过程,其中用到了双重循环。

delimiter //                            #定义标识符为双斜杠
drop procedure if exists outFor;          #如果存在test存储过程则删除
create procedure outFor()                 #创建无参存储过程,名称为outFor
begin
    declare i int;                      #申明变量
        #申明变量
    set i = 0;                          #变量赋值
        set @k = (SELECT count(1)  FROM (select a.app_list from avn_assets a inner join avn_asset_new b on a.id = b.id) c);
    while i < @k do                     #结束循环的条件: 跳出while循环
            # 内层循环
            #--------------------
            set @m = (SELECT json_length(app_list)  FROM (SELECT (@i:=@i+1) sq, c.app_list FROM (select a.app_list from avn_assets a inner join avn_asset_new b on a.id = b.id) c,  (SELECT @i:=-1) as sq) temp WHERE temp.sq = i);
#                                    SELECT concat("i",i,@m);
        set @j = 0;
        WHILE @j < @m DO
            INSERT INTO avn_asset_new_app(uid,app_name,app_sign,created_at,updated_at)
            SELECT  JSON_UNQUOTE(json_extract(app_list,CONCAT('$[',@j,'].uid'))),
             JSON_UNQUOTE(json_extract(app_list,CONCAT('$[',@j,'].app_name'))),
            created_at,updated_at  FROM (SELECT (@i:=@i+1) sq,c.id, c.app_list,c.updated_at  FROM (select a.id,a.app_list,a.created_at, from avn_assets a inner join avn_asset_new b on a.id = b.id) c,  (SELECT @i:=-1) as sq) temp WHERE temp.sq = i;
            set @j = @j + 1;
            END WHILE;                
            #--------------------
    set i = i + 1;                  #循环一次,i加一
    end while;                          #结束while循环
end
//                                      #结束定义语句
call outFor(); 

最后

以上就是默默可乐为你收集整理的Mysql 数据迁移引发的sql 双重 for 循环 存储过程的编写 (包含Mysql 5.7 JDBCType 为 json 的字段的操作 )的全部内容,希望文章能够帮你解决Mysql 数据迁移引发的sql 双重 for 循环 存储过程的编写 (包含Mysql 5.7 JDBCType 为 json 的字段的操作 )所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部