El tipo de datos uuid almacena Identificadores Únicos Universales
(UUID) según lo definido por la RFC 9562,
ISO/IEC 9834-8:2005 y estándares relacionados.
(Algunos sistemas se refieren a este tipo de datos como identificador único global o
GUID, en su lugar). Este
identificador es una cantidad de 128 bits que se genera mediante un algoritmo elegido
para hacer que sea muy poco probable que el mismo identificador sea generado por
cualquier otra persona en el universo conocido utilizando el mismo algoritmo. Por lo tanto,
para los sistemas distribuidos, estos identificadores proporcionan una mejor garantía de unicidad
que los generadores de secuencias, que
solo son únicos dentro de una única base de datos.
La RFC 9562 define 8 versiones diferentes de UUID. Cada versión tiene requisitos específicos
para generar nuevos valores UUID, y cada versión proporciona distintas ventajas y desventajas.
PostgreSQL proporciona soporte nativo para generar UUIDs
utilizando los algoritmos UUIDv4 y UUIDv7. Alternativamente, los valores UUID pueden generarse
fuera de la base de datos utilizando cualquier algoritmo. El tipo de datos uuid se puede utilizar
para almacenar cualquier UUID, independientemente del origen y de la versión del UUID.
Un UUID se escribe como una secuencia de dígitos hexadecimales en minúsculas, en varios grupos separados por guiones; específicamente, un grupo de 8 dígitos seguido de tres grupos de 4 dígitos seguido de un grupo de 12 dígitos, para un total de 32 dígitos que representan los 128 bits. Un ejemplo de un UUID en esta forma estándar es:
a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11
PostgreSQL también acepta las siguientes formas alternativas para la entrada: el uso de dígitos en mayúsculas, el formato estándar rodeado por llaves, omitiendo algunos o todos los guiones, o agregando un guion después de cualquier grupo de cuatro dígitos. Algunos ejemplos son:
A0EEBC99-9C0B-4EF8-BB6D-6BB9BD380A11
{a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11}
a0eebc999c0b4ef8bb6d6bb9bd380a11
a0ee-bc99-9c0b-4ef8-bb6d-6bb9-bd38-0a11
{a0eebc99-9c0b4ef8-bb6d6bb9-bd380a11}
La salida se presenta siempre en la forma estándar.
Consulta la Section 9.14 para ver cómo generar un UUID en PostgreSQL.