sql >> Base de Datos >  >> RDS >> MariaDB

Cómo funciona UUID_SHORT() en MariaDB

En MariaDB, UUID_SHORT() es una función integrada que devuelve un identificador único universal (UUID) breve.

Devuelve un entero sin signo de 64 bits (a diferencia del identificador de 128 bits en forma de cadena que devuelve el UUID() función).

Sintaxis

La sintaxis es así:

UUID_SHORT()

Por lo tanto, no se requieren (ni se aceptan) argumentos.

Ejemplo

Aquí hay un ejemplo para demostrarlo:

SELECT UUID_SHORT();

Resultado:

+-------------------+
| UUID_SHORT()      |
+-------------------+
| 99291717236162560 |
+-------------------+

Si lo llamo en otro momento, obtengo un valor diferente:

SELECT UUID_SHORT();

Resultado:

+-------------------+
| UUID_SHORT()      |
+-------------------+
| 99291717236162561 |
+-------------------+

Sobre el resultado

El valor devuelto por UUID_SHORT() se garantiza que es único si se cumplen las siguientes condiciones:

  • El server_id del host actual es único entre su conjunto de servidores maestros y esclavos
  • server_id está entre 0 y 255
  • No retrasa la hora de su sistema para su servidor entre mysqld reinicia
  • No invoques UUID_SHORT() en promedio más de 16 millones de veces por segundo entre mysqld reinicia

Tenga en cuenta que las declaraciones que usan UUID_SHORT() no son seguras para la replicación basada en declaraciones.

Comparado con el UUID() Función

El resultado devuelto por UUID_SHORT() es similar al devuelto por el UUID() función, excepto que el resultado devuelto por 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.

Aquí hay una comparación de los dos:

SELECT 
    UUID(),
    UUID_SHORT();

Resultado:

+--------------------------------------+-------------------+
| UUID()                               | UUID_SHORT()      |
+--------------------------------------+-------------------+
| e67d0fc6-cd8d-11eb-be04-88e9fe739f3d | 99291717236162562 |
+--------------------------------------+-------------------+

Además de esto, desde MariaDB 10.6.1, un SYS_GUID() se ha agregado la función para mejorar la compatibilidad con Oracle.

Sin Argumentos

Como se mencionó, UUID_SHORT() no acepta ningún argumento. Esto es lo que sucede cuando paso un argumento:

SELECT UUID_SHORT(3);

Resultado:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'UUID_SHORT'