MySQL存储过程实现更新UUID

来源:互联网 发布:java cors 跨域 编辑:程序博客网 时间:2024/06/03 19:55

背景交代:
原有数据表中只有自增的id,现在需要新添加一个UUID的列。(UUID不需要“-”)

解决方法:
首先,如果你连自增的id列都没有,可以先生成一个自增id列,就算有数据了也没有关系。然后,我们为uuid给表新增加一列,名字就叫uuid。最后,我们建立如下的存储过程:

DELIMITER $$USE `reptail`$$DROP PROCEDURE IF EXISTS `updateUUID`$$CREATE DEFINER = `root` @`localhost` PROCEDURE `updateUUID` () BEGIN-- 声明一个变量,初始化为0,用于存储表的总记录数  SET @c_num = 0 ;--   将最大的自增id存入c_num,方便我们循环处理数据  SELECT     MAX(id) INTO @c_num   FROM    `virtual_compound_database`    ;  SET @i = 1 ;  WHILE    @i <= @c_num DO --     为当前循环到的id设置uuid,去掉生成的‘-’    UPDATE      `virtual_compound_database`    SET      UUID= REPLACE(UUID(), "-", "")     WHERE id = @i ;    SET @i = @i + 1 ;  END WHILE ;END $$DELIMITER ;

调取存储过程的代码如下:

CALL updateUUID()
原创粉丝点击