背景交代:解決方法:原有資料表中只有自增的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...