MySQL - UUID标识符

MySQL - UUID标识符 首页 / MySQL入门教程 / MySQL - UUID标识符

UUID是RFC 4122指定的通用唯一标识符(它是通用唯一标识符URN命名空间),且值为128位长。它的设计方式是根据时空生成全球唯一的数字。如果无涯教程连续调用两个UUID,将获得两个不同的值,即使它们是在两个未连接的独立设备上执行的。

NOTE: 虽然UUID()始终生成唯一值,但它们不是猜测或可预测的。这意味着它总是返回一个随机数。

UUID结构

MySQL 中的UUID 返回一个128位长的值。它以人类可读的格式表示为五个十六进制数字的UTF8字符串,格式如下:

aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee
  • 前三个数字是时间戳格式的一部分,例如低,中和高。在这里,高位包含UUID版本号。
  • 第四个数字负责在时间戳值失去单调性时保留时间唯一性。
  • 第五个数字代表IEEE 802节点号,它表示空间唯一性。如果字母不可用,它将替换不能保证空间唯一性的随机数。

以下是MySQL中UUID值的有效字符串格式,该格式是十六进制格式的32位数字和四个连字符(-)的组合:

a2720191-1cc6-11eb-9a2c-107d1a24f935
185e6dfd-1cc8-11eb-9a2c-107d1a24f935

可以使用以下函数在MySQL中生成UUID值:

mysql> SELECT UUID();

上面的函数返回与RFC 4122中描述的UUID版本1一致的UUID值。成功执行以上语句后,它将生成UUID值,如下所示:

MySQL UUID


UUID示例

让无涯教程借助示例了解如何使用UUID。首先,将使用以下语句创建一个名为 employee 的新表:

CREATE TABLE employee (
    emp_id BINARY(16) PRIMARY KEY,
    name VARCHAR(255)
);

接下来,需要将值插入表中。另外,如果要将UUID值添加到 emp_id列,则必须使用UUID()和UUID_TO_BIN()函数,如下所示:

INSERT INTO employee (emp_id, name)
VALUES (UUID_TO_BIN(UUID()),'John Doe'),
      (UUID_TO_BIN(UUID()),'Johnny Dope'),
      (UUID_TO_BIN(UUID()),'Jason Gillespie');

现在,执行 SELECT语句以验证插入的记录。

MySQL UUID

最后,将使用BIN_TO_UUID()函数从UUID列查询数据,该函数将二进制格式转换为人类可读格式。请参阅以下语句:

mysql> SELECT BIN_TO_UUID(emp_id) AS ID, name FROM employee;

无涯教程将获得如下输出:

无涯教程网

MySQL UUID



祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

Go语言从入门到实战 -〔蔡超〕

零基础学Java -〔臧萌〕

DDD实战课 -〔欧创新〕

说透敏捷 -〔宋宁〕

乔新亮的CTO成长复盘 -〔乔新亮〕

A/B测试从0到1 -〔张博伟〕

基于人因的用户体验设计课 -〔刘石〕

流程型组织15讲 -〔蒋伟良〕

云计算的必修小课 -〔吕蕴偲〕

好记忆不如烂笔头。留下您的足迹吧 :)