GEN_RANDOM_UUID
バージョン 1.2.658 以降では、バージョン 7 に基づくランダム UUID を生成します。以前は、この関数はバージョン 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 は各イベントが時系列順になることを保証するため、アクションを時系列で簡単に追跡できます。
-- Log a user logging in
SELECT GEN_RANDOM_UUID(), 'User logged in' AS event, CURRENT_TIMESTAMP AS event_time;
-- Log a user making a purchase
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 in │ 2024-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() の値がイベントの発生順に生成されていることに注目してください。これにより、時系列順を簡単に管理できます。