跳到主要内容

GEN_RANDOM_UUID

基于版本7生成一个随机的UUID,从版本1.2.658开始。之前,此函数生成基于版本4的UUID。

语法

GEN_RANDOM_UUID()

别名

为什么使用UUID v7?

  • 基于时间的排序:UUID v7包含一个时间戳,允许事件或记录按创建时间进行时间顺序排序。这在需要跟踪操作序列时特别有用。

  • 按时间排序:UUID v7确保UUID按创建时间排序,这对于需要按时间排序事件的场景非常理想,例如事件日志记录或维护审计跟踪。

版本信息

  • 版本1.2.658及更高版本:UUID版本从v4升级到v7。
  • 1.2.658之前的版本:UUID生成基于v4。

示例

在一个记录事件的应用程序中,保持操作的正确顺序至关重要。UUID v7确保每个事件按时间顺序排列,使得按时间顺序跟踪操作变得容易。

-- 记录用户登录
SELECT GEN_RANDOM_UUID(), 'User logged in' AS event, CURRENT_TIMESTAMP AS event_time;

-- 记录用户购买
SELECT GEN_RANDOM_UUID(), 'User made a purchase' AS event, CURRENT_TIMESTAMP AS event_time;

这些查询的结果可能如下所示:

┌──────────────────────────────────────────────────────────────────────────────────────────┐
│ gen_random_uuid() │ event │ event_time │
├──────────────────────────────────────┼──────────────────────┼────────────────────────────┤
019329e6-26a2-7b01-b9f5-1c3c02600578 │ User logged in2024-11-14 08:59:29.313906
019329e6-329e-73c3-b0a8-a413ce298607 │ User made a purchase │ 2024-11-14 08:59:32.381497
└──────────────────────────────────────────────────────────────────────────────────────────┘

注意,gen_random_uuid() 值按事件发生的顺序生成,使得保持时间顺序变得容易。

开始使用 Databend Cloud
低成本
快速分析
多种数据源
弹性扩展
注册