跳到主要内容
跳到主要内容

UUID

通用唯一识别码 (UUID) 是一个 16 字节的值,用于标识记录。有关 UUID 的详细信息,请参见 Wikipedia

虽然存在不同的 UUID 变体(见 here),但 ClickHouse 不会验证插入的 UUID 是否符合特定变体。 UUID 在内部被视为 16 个随机字节的序列,在 SQL 层面上采用 8-4-4-4-12 表示法

示例 UUID 值:

默认的 UUID 为全零。当插入新记录但未指定 UUID 列的值时使用:

由于历史原因,UUID 按其后半部分排序。 因此,不应直接在表的主键、排序键或分区键中使用 UUID。

示例:

结果:

作为解决方法,可以将 UUID 转换为具有直观排序顺序的类型。

使用转换为 UInt128 的示例:

结果:

生成 UUIDs

ClickHouse 提供了 generateUUIDv4 函数来生成随机的 UUID 版本 4 值。

使用示例

示例 1

此示例演示了创建一个具有 UUID 列的表以及向表中插入值。

结果:

示例 2

在此示例中,插入记录时未指定 UUID 列值,即插入默认的 UUID 值:

限制

UUID 数据类型仅支持 String 数据类型也支持的函数(例如,minmaxcount)。

UUID 数据类型不支持算术运算(例如,abs)或聚合函数,如 sumavg