MySQL中的uuid()和uuid_short()函數

在之前項目中,數據庫生成UUID主鍵一般會用Java調用函數,最近發現在MySQL也有自帶的uuid函數,分別是uuid()和uuid_short(),現對這兩個函數進行演示和說明。
在 MySQL 中,可以有如下幾種途徑實現唯一值:
(1)自增序列
(2)UUID() 函數
(3)程序自定義

一、uuid()
UUID 基於 16 進制,由 32 位小寫的 16 進制數字組成,如下:

aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee

比如123e4567-e89b-12d3-a456-426655440000就是一個典型的 UUID。
在 MySQL 的 UUID() 函數中,前三組數字從時間戳中生成,第四組數字暫時保持時間戳的唯一性,第五組數字是一個 IEEE 802 節點標點值,保證空間唯一。使用 UUID() 函數,可以生成時間、空間上都獨一無二的值。據說只要是使用了 UUID,都不可能看到兩個重複的 UUID 值。當然,這個只是在理論情況下。

select uuid()

二、uuid_short()
在 MySQL 5.1 之後的版本,提供 UUID_SHORT() 函數,生成一個 64 位無符號整數。另外,需要注意的是,server_id 的範圍必須爲 0-255,並且不支持 STATEMENT 模式複製。

select UUID_SHORT()
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章