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()

你可能感兴趣的:(MySQL)