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