我的数据集表格名称用户
unique_id uid
123487.1 1000
123488.1
123489.1
123490.1
如上图所示,这是我的exixing数据,我想添加uid,所以我的数据应如下所示显示
unique_id uid
123487.1 1000
123488.1 1001
123489.1 1002
123490.1 1003
您可以创建这样的过程:
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;
然后将根据您的要求更新值。
这里是DEMO。