MySQL儲存過程 實現更新UUID

2021-08-08 17:26:02 字數 941 閱讀 2985

背景交代:

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

mysql 儲存過程批量更新

最近做乙個批量更新的操作,由於是臨時需求,就想著在資料庫直接操作,不在 裡動手了,結合網上的一些資料,做如下處理 1.先建立乙個臨時表,匯入需要變動的資料 drop table if exists t barcode create table t barcode barcode varchar 32...

MYSQL儲存過程實現遍歷結果集更新

drop procedure update product delimiter 建立儲存過程 create procedure update product begin 定義變數 declare s int default 0 declare tui varchar 8 declare produc...

mysql儲存登入 MYSQL儲存過程實現使用者登入

create definer root function uc session login re son json,srvjson json returnsjson language sqlnotdeterministiccontainssql sql security definer commen...