日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql全局唯一id_Mysql实现全局唯一ID

發布時間:2024/10/14 数据库 92 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql全局唯一id_Mysql实现全局唯一ID 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

因為MYSQL沒有ORACLE中的sequence概念,所以需要建立一個表來模擬sequence,同時也可以作為高位數據保存。

CREATE TABLE IF NOT EXISTS `sys_sequence` (

`id` int(11) unsigned NOT NULL,

`no` varchar(4) NOT NULL DEFAULT '',

`name` varchar(64) NOT NULL DEFAULT ''

) ENGINE=MyISAM AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;

ALTER TABLE `sys_sequence` ADD PRIMARY KEY (`id`);

創建MYSQL函數:

create function `get_sequence`(`in_name` varchar(64)) returns varchar(16) charset utf8

begin

declare p_last_id int;

declare p_no varchar(4);

declare p_result varchar(16);

declare p_max_no int;

insert into sys_sequence () values ();

select last_insert_id() into p_last_id;

delete from sys_sequence where id = p_last_id;

if(in_name is not null and in_name <> '') then

select no into p_no from sys_sequence where name = in_name;

if(p_no is null) then

select max(cast(no as unsigned)) into p_max_no from sys_sequence;

set p_no = lpad(p_max_no + 1, 4, 0);

insert into sys_sequence (no, name) values (p_no, in_name);

end if;

else

set p_no = '0000';

end if;

set p_result = concat(p_no, lpad(p_last_id, 12, 0));

return p_result;

end

參考資料

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的mysql全局唯一id_Mysql实现全局唯一ID的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。