MariaDB UUID() 函数使用指南
在 MariaDB 中,UUID()
是一个内置函数,它返回一个根据 RFC 4122 生成的通用唯一标识符(UUID)。
UUID 是根据 The Open Group 于 1997 年 10 月发布的“DCE 1.1:远程过程调用”(附录 A)CAE(通用应用程序环境)规范(文档编号 C706)生成的。
MariaDB UUID()
语法
这里是 MariaDB UUID()
函数的语法:
UUID()
参数
MariaDB UUID()
函数没有任何参数。
返回值
MariaDB UUID()
函数返回一个根据 RFC 4122 生成的通用唯一标识符(UUID)。
UUID()
返回的值符合 RFC 4122 中描述的 UUID 版本 1。该值是一个 128 位数字,表示为一个由五个十六进制数字组成的 utf8
字符串, 格式为aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee
:
-
前三个数字是从时间戳的低、中和高三部分生成的。高位部分还包括 UUID 版本号。
-
第四个数字保留时间唯一性,以防时间戳值失去单调性(例如,由于夏令时)。
-
第五个数字是 IEEE 802 节点号,它提供空间唯一性。如果后者不可用(例如,因为主机设备没有以太网卡,或者不知道如何在主机操作系统上找到接口的硬件地址),则用随机数代替。在这种情况下,无法保证空间唯一性。然而,碰撞的概率应该 非常低。
接口的 MAC 地址仅在 FreeBSD、Linux 和 Windows 上被使用。在其他操作系统上,MySQL 使用随机生成的 48 位数字。
MariaDB UUID()
示例
下面的示例展示了如何使用 UUID()
函数获取一个唯一标识符。
SELECT UUID();
输出:
+--------------------------------------+
| UUID() |
+--------------------------------------+
| bd9677dc-a10c-11ed-ac31-18c04d19fce5 |
+--------------------------------------+
如果我再次调用它,我会得到不同的值:
SELECT UUID();
输出:
+--------------------------------------+
| UUID() |
+--------------------------------------+
| c3db2503-a10c-11ed-ac31-18c04d19fce5 |
+--------------------------------------+
即使您在同一个语句中调用两次 UUID()
, 也会达到不同的值:
SELECT
UUID(),
UUID()\G
输出:
UUID(): ca49cd73-a10c-11ed-ac31-18c04d19fce5
UUID(): ca49cd76-a10c-11ed-ac31-18c04d19fce5
SYS_GUID()
vs UUID()
vs UUID_SHORT()
下面的例子展示了 SYS_GUID()
, UUID()
和 UUID_SHORT()
的不同:
SELECT
UUID_SHORT(),
UUID(),
SYS_GUID()\G
输出:
UUID_SHORT(): 100158760672034822
UUID(): 56884e1f-a10d-11ed-ac31-18c04d19fce5
SYS_GUID(): 56884e24a10d11edac3118c04d19fce5
结论
在 MariaDB 中,UUID()
是一个内置函数,返回一个简短的在一定条件下具有唯一性的通用标识符(UUID)。