9.14. Funções de UUID #

A Tabela 9.45 descreve as funções do PostgreSQL que podem ser usadas para gerar UUIDs [71].

Tabela 9.45. Funções de geração de UUID

Função

Descrição

Exemplo(s)

gen_random_uuid ( ) → uuid

uuidv4 ( ) → uuid

Gera um UUID versão 4 (aleatório)

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

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

uuidv7 ( [ shift interval ] ) → uuid

Gera um UUID versão 7 (ordenado por tempo). O carimbo de data e hora é calculado usando o carimbo de data e hora do UNIX com precisão de milissegundos + carimbo de data e hora com precisão de sub-milissegundos + valor aleatório. O parâmetro opcional shift irá deslocar o carimbo de data e hora calculado pelo interval fornecido.

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


Nota

O módulo uuid-ossp fornece funções adicionais que implementam outros algoritmos padrão para geração de UUIDs.

A Tabela 9.46 descreve as funções do PostgreSQL que podem ser usadas para extrair informações de UUIDs.

Tabela 9.46. Funções de extração de UUID

Função

Descrição

Exemplo(s)

uuid_extract_timestamp ( uuid ) → timestamp with time zone

Extrai um carimbo de data e hora com zona horária de um UUID versão 1 ou 7. Para as outras versões, esta função retorna nulo. Note que o carimbo de data e hora extraído não é necessariamente exatamente igual ao momento em que o UUID foi gerado; isto depende da implementação que gerou o UUID.

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

uuid_extract_version ( uuid ) → smallint

Extrai a versão de um UUID de uma das variantes descritas no RFC 9562. Para outras variantes, esta função retorna nulo. Por exemplo, para um UUID gerado por gen_random_uuid(), esta função retornará 4.

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

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


O PostgreSQL também fornece para os UUIDs os operadores de comparação usuais descritos na Tabela 9.1.

Veja a Seção 8.12 para obter detalhes sobre o tipo de dados uuid no PostgreSQL.



[71] UUID = Universally Unique Identifier — Identificador Universalmente Único. (N. T.)