开发者社区 问答 正文

SQL查询使用for循环插入多个数据

我的数据集

表格名称 Users

unique_id uid

123487.1 1000 123488.1
123489.1
123490.1
如上所示,这是我现有的数据,我想添加uid,因此我的数据应显示如下。

unique_id uid

123487.1 1000 123488.1 1001 123489.1 1002 123490.1 1003

问题来源于stack overflow

展开
收起
保持可爱mmm 2019-11-18 17:23:56 1021 分享 版权
1 条回答
写回答
取消 提交回答
  • 您可以创建如下过程:

    CREATE PROCEDURE uid_update()

    BEGIN

    DECLARE Done_c INT; DECLARE v_min_id INT; declare number_plus int; declare v_cur int;

    DECLARE curs CURSOR FOR select ROW_NUMBER() OVER (order by unique_id) rn
    from testTable where uid is null;

    DECLARE CONTINUE HANDLER FOR NOT FOUND SET Done_c = 1;

    SELECT max(uid) INTO number_plus FROM testTable;

    OPEN curs;

    SET Done_c = 0; REPEAT FETCH curs INTO v_cur;

       select min(unique_id) into v_min_id 
       from testTable 
       where uid is null;
    
       update testTable
       set uid = number_plus + v_cur
       where uid is null
       and unique_id = v_min_id ;
    
       commit;
    
       UNTIL Done_c END REPEAT;
    

    CLOSE curs;

    END 然后像这样调用该过程:

    call uid_update; 然后将根据您的要求更新值。

    2019-11-18 17:24:06
    赞同 展开评论
问答分类:
SQL
问答地址: