En MariaDB, UUID()
es una función integrada que devuelve un identificador único universal (UUID).
El UUID se genera de acuerdo con "DCE 1.1:Llamada a procedimiento remoto" (Apéndice A) Especificaciones CAE (Entorno de aplicaciones comunes) publicadas por The Open Group en octubre de 1997 (Documento número C706).
Sintaxis
La sintaxis es así:
UUID()
Por lo tanto, no se requieren (ni se aceptan) argumentos.
Ejemplo
Aquí hay un ejemplo para demostrarlo:
SELECT UUID();
Resultado:
+--------------------------------------+ | UUID() | +--------------------------------------+ | e5aa36ee-cd8a-11eb-be04-88e9fe739f3d | +--------------------------------------+
Si lo llamo en otro momento, obtengo un valor diferente:
SELECT UUID();
Resultado:
+--------------------------------------+ | UUID() | +--------------------------------------+ | f11b4702-cd8a-11eb-be04-88e9fe739f3d | +--------------------------------------+
Acerca del UUID
Un UUID (Universal Unique Identifier) es un número que está diseñado para ser globalmente único en el espacio y el tiempo. Dos llamadas a UUID()
se espera que generen dos valores diferentes, incluso si estas llamadas se realizan en dos computadoras separadas que no están conectadas entre sí.
Un UUID es un número de 128 bits representado por una cadena utf8 de cinco números hexadecimales en aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee
formato:
- Los tres primeros números se generan a partir de una marca de tiempo.
- El cuarto número conserva la unicidad temporal en caso de que el valor de la marca de tiempo pierda monotonicidad (por ejemplo, debido al horario de verano).
- El quinto número es un número de nodo IEEE 802 que proporciona exclusividad espacial. Se sustituye por un número aleatorio si este último no está disponible. En tales casos, no se puede garantizar la singularidad espacial. Habiendo dicho eso, una colisión debería ser un evento de probabilidad extremadamente baja.
Tenga en cuenta que las declaraciones que utilizan UUID()
no son seguras para la replicación basada en declaraciones.
Comparado con SYS_GUID()
Función
El resultado devuelto por UUID()
es similar al devuelto por SYS_GUID()
función, excepto que SYS_GUID()
no incluye el símbolo de guión (-
) en el resultado (mientras que, UUID()
lo hace).
Aquí hay una comparación de los dos:
SELECT
UUID(),
SYS_GUID();
Resultado:
+--------------------------------------+----------------------------------+ | UUID() | SYS_GUID() | +--------------------------------------+----------------------------------+ | 9e795ffc-cd71-11eb-8f75-0800270503a7 | 9E796001CD7111EB8F750800270503A7 | +--------------------------------------+----------------------------------+
El SYS_GUID()
La función se introdujo en MariaDB 10.6.1 para mejorar la compatibilidad con Oracle.
También hay un UUID_SHORT()
función que devuelve un UUID corto como un entero sin signo de 64 bits.
Aprobación de argumentos
Como se mencionó, UUID()
no acepta ningún argumento. Esto es lo que sucede cuando paso un argumento:
SELECT UUID(3);
Resultado:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'UUID'