1. 程式人生 > >MySQL儲存過程:實現更新UUID

MySQL儲存過程:實現更新UUID

背景交代
原有資料表中只有自增的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()