MySQL UUID17 Mar 2025 | 4 分钟阅读 UUID 是由 RFC 4122 (它是一个全球唯一标识符 URN 命名空间) 指定的全球唯一标识符,是一个 128 位长的值。它的设计方式是,它生成的数字在全球范围内根据空间和时间都是唯一的。如果我们连续调用两个 UUID,我们将获得两个不同的值,即使它们是在两个未连接的独立设备上执行的。 注意:虽然 UUID() 总是生成唯一值,但它们不可猜测或预测。这意味着它总是返回一个随机数。UUID 的结构MySQL 中的 UUID 返回一个 128 位长的值。它以人类可读的格式表示为 UTF8 字符串,由以下格式的五个十六进制数字组成
以下是 MySQL 中 UUID 值的有效字符串格式,它是由 32 位十六进制数字和四个连字符 (-) 组成的排列: 我们可以使用以下函数在 MySQL 中生成 UUID 值 上述函数根据 RFC 4122 中描述的 UUID 版本 1 返回一个 UUID 值。成功执行上述语句后,它将生成 UUID 值,如下所示 ![]() MySQL UUID 与 AUTO_INCREMENT PRIMARY KEYMySQL 中的 UUID 是 AUTO_INCREMENT PRIMARY KEY 的一个很好的替代方案。以下是 UUID 相对于 AUTO_INCREMENT PRIMARY KEY 的优点 优点以下是使用 UUID 作为主键的优点
缺点除了优点,以下是使用 UUID 作为主键的缺点
MySQL UUID 解决方案我们可以通过使用下面给出的函数来克服 MySQL 中的这些问题。这些函数允许我们以紧凑格式 (BINARY) 存储 UUID 值,并以人类可读格式 (VARCHAR) 显示它们。这些函数的名称是
注意:需要注意的是,这些函数仅在 MySQL 8.0 或更高版本中可用。UUID_TO_BIN() 函数用于将 UUID 值从人类可读格式转换为紧凑格式,以便将其存储在数据库中。 BIN_TO_UUID() 函数用于将 UUID 从紧凑格式转换为人类可读格式,以便显示。 IS_UUID() 函数用于验证 UUID 的字符串格式。当参数有效时返回 1,当参数无效时返回 0。如果参数为 NULL,则返回 NULL。 MySQL UUID 示例让我们通过一个示例来了解如何使用 UUID。首先,我们将使用以下语句创建一个名为 employee 的新表 接下来,我们需要将值插入到表中。此外,如果我们要将 UUID 值添加到 emp_id 列中,我们必须使用 UUID() 和 UUID_TO_BIN() 函数,如下所示 现在,执行 SELECT 语句以验证插入的记录。 ![]() 最后,我们将使用 BIN_TO_UUID() 函数从 UUID 列查询数据,该函数将二进制格式转换为人类可读格式。请参阅以下语句 我们将得到如下输出 ![]() MySQL UUID 与 UUID(short)UUID() 和 UUID(short) 都是 MySQL 中不同的函数。它们之间的基本区别在下面的比较图中讨论
|
我们请求您订阅我们的新闻通讯以获取最新更新。