UUID是RFC 4122指定的通用唯一标识符(它是通用唯一标识符URN命名空间),且值为128位长。它的设计方式是根据时空生成全球唯一的数字。如果无涯教程连续调用两个UUID,将获得两个不同的值,即使它们是在两个未连接的独立设备上执行的。
MySQL 中的UUID 返回一个128位长的值。它以人类可读的格式表示为五个十六进制数字的UTF8字符串,格式如下:
aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee
以下是MySQL中UUID值的有效字符串格式,该格式是十六进制格式的32位数字和四个连字符(-)的组合:
a2720191-1cc6-11eb-9a2c-107d1a24f935 185e6dfd-1cc8-11eb-9a2c-107d1a24f935
可以使用以下函数在MySQL中生成UUID值:
mysql> SELECT UUID();
上面的函数返回与RFC 4122中描述的UUID版本1一致的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语句以验证插入的记录。
最后,将使用BIN_TO_UUID()函数从UUID列查询数据,该函数将二进制格式转换为人类可读格式。请参阅以下语句:
mysql> SELECT BIN_TO_UUID(emp_id) AS ID, name FROM employee;
无涯教程将获得如下输出:
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)