Todos los productos
Search
Centro de documentos

AnalyticDB:UUID-OSSP

Última actualización: Sep 04, 2026

La extensión uuid-ossp proporciona funciones para generar identificadores únicos universales (UUID). En sistemas distribuidos, los UUID ofrecen garantías de unicidad más sólidas que las secuencias, por lo que son una opción confiable para claves primarias e identificadores de registros entre nodos.

Formato de UUID

Un UUID consta de 32 dígitos hexadecimales organizados en cinco grupos separados por guiones: 8-4-4-4-12. Por ejemplo:

a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11

PostgreSQL acepta UUID en varios formatos equivalentes:

Format

Example

Estándar (minúsculas)

a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11

Mayúsculas

A0EEBC99-9C0B-4EF8-BB6D-6BB9BD380A11

Llaves

{a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11}

Sin guiones

a0eebc999c0b4ef8bb6d6bb9bd380a11

Guiones cada 4 dígitos

a0ee-bc99-9c0b-4ef8-bb6d-6bb9-bd38-0a11

Mixto

{a0eebc99-9c0b4ef8-bb6d6bb9-bd380a11}

Los campos UUID no se pueden utilizar como clave de distribución en AnalyticDB for PostgreSQL.

Instalar la extensión

Antes de generar UUID, instale la extensión uuid-ossp desde la página Extensions de su instancia. Para obtener más detalles, consulte Install, update, and uninstall extensions.

Funciones de generación de UUID

Versión 1: basada en tiempo

uuid_generate_v1() genera un UUID a partir de la marca de tiempo actual y la dirección MAC del host.

uuid_generate_v1mc() funciona igual que uuid_generate_v1(), pero utiliza una dirección MAC de multidifusión aleatoria en lugar de la dirección MAC real, lo que evita la exposición directa del identificador de hardware de la máquina.

Aviso

Los UUID de versión 1 integran la dirección MAC de la máquina generadora e incluyen un componente de tiempo, lo que los hace parcialmente predecibles. Evite usar UUID de versión 1 en aplicaciones sensibles a la seguridad.

Versión 3: basada en nombre (MD5)

uuid_generate_v3(namespace uuid, name text) genera un UUID determinista mediante el hash de name dentro de namespace con MD5.

SELECT uuid_generate_v3(uuid_ns_url(), 'example.com');

Las mismas entradas siempre producen el mismo UUID. No interviene ningún algoritmo aleatorio ni entorno del sistema, por lo que el resultado es totalmente reproducible.

Versión 4: aleatoria

uuid_generate_v4() genera un UUID basado en números aleatorios.

Versión 5: basada en nombre (SHA-1)

uuid_generate_v5(namespace uuid, name text) funciona igual que uuid_generate_v3(), pero usa SHA-1 en lugar de MD5. Dado que SHA-1 es más seguro que MD5, prefiera la versión 5 sobre la versión 3 siempre que necesite UUID basados en nombre.

Constantes de namespace

Utilice estas constantes como argumento de namespace en uuid_generate_v3() y uuid_generate_v5().

Function

Namespace

uuid_ns_dns()

Domain Name System (DNS)

uuid_ns_url()

URL

uuid_ns_oid()

Identificador de objeto ISO (OID), definido por el estándar Abstract Syntax Notation One (ASN.1); distinto de los OID de PostgreSQL

uuid_ns_x500()

Nombre distinguido X.500 (DN)

uuid_nil() devuelve la constante de UUID nulo, que no es un UUID real.

Ejemplos

-- Version 1 (time-based)
SELECT uuid_generate_v1();
 uuid_generate_v1
--------------------------------------
 c7f83ba4-bd93-11e9-8674-40a8f01ec4e8
(1 row)
-- Version 3 (name-based, MD5)
SELECT uuid_generate_v3(uuid_ns_url(), 'example.com');
 uuid_generate_v3
--------------------------------------
 a0473a67-27a1-3c05-a2d1-5c134639347f
(1 row)
-- Version 4 (random)
SELECT uuid_generate_v4();
 uuid_generate_v4
--------------------------------------
 d7a8d47e-58e3-4bd9-9340-8553ac03d144
(1 row)
-- Version 5 (name-based, SHA-1)
SELECT uuid_generate_v5(uuid_ns_url(), 'example.com');
 uuid_generate_v5
--------------------------------------
 a5cf6e8e-4cfa-5f31-a804-6de6d1245e26
(1 row)

Referencias