9.14. Функции UUID#

9.14. Функции UUID

9.14. Функции UUID #

Таблица 9.45 показывает функции Tantor SE, которые можно использовать для генерирования UUID.

Таблица 9.45. Функции генерирования UUID

Функция

Описание

Пример(ы)

gen_random_uuid ( ) → uuid

uuidv4 ( ) → uuid

Генерирует UUID версии 4 (случайный)

gen_random_uuid() → 5b30857f-0bfa-48b5-ac0b-5c64e28078d1

uuidv4() → b42410ee-132f-42ee-9e4f-09a6485c95b8

uuidv7 ( [ shift interval ] ) → uuid

Генерирует UUID версии 7 (упорядоченный по времени). Метка времени вычисляется с использованием UNIX-метки с точностью до миллисекунды + временная метка с точностью до доли миллисекунды + случайное значение. Необязательный параметр shift сдвигает вычисленную метку времени на заданный interval.

uuidv7() → 019535d9-3df7-79fb-b466-fa907fa17f9e


Примечание

Модуль uuid-ossp предоставляет дополнительные функции, реализующие другие стандартные алгоритмы генерирования UUID.

Таблица 9.46 показывает функции Tantor SE, которые можно использовать для извлечения информации из UUID.

Таблица 9.46. Функции извлечения UUID

Функция

Описание

Пример(ы)

uuid_extract_timestamp ( uuid ) → timestamp with time zone

Извлекает timestamp with time zone из UUID версии 1 или 7. Для других версий эта функция возвращает null. Обратите внимание, что извлечённая временная метка не обязательно точно совпадает со временем генерирования UUID; это зависит от реализации, которая сгенерировала UUID.

uuid_extract_timestamp('019535d9-3df7-79fb-b466-​fa907fa17f9e'::uuid) → 2025-02-23 21:46:24.503-05

uuid_extract_version ( uuid ) → smallint

Извлекает версию из UUID одного из вариантов, описанных в RFC 9562. Для других вариантов эта функция возвращает null. Например, для UUID, сгенерированного с помощью gen_random_uuid(), эта функция вернёт 4.

uuid_extract_version('41db1265-8bc1-4ab3-992f-​885799a4af1d'::uuid) → 4

uuid_extract_version('019535d9-3df7-79fb-b466-​fa907fa17f9e'::uuid) → 7


Tantor SE также предоставляет обычные операторы сравнения, показанные в Таблица 9.1 для UUID.

Смотрите Раздел 8.12 для получения подробной информации о типе данных uuid в Tantor SE.