MariaDB
 sql >> Base de Dados >  >> RDS >> MariaDB

Como UUID_SHORT() funciona no MariaDB


No MariaDB, UUID_SHORT() é uma função interna que retorna um Identificador Exclusivo Universal (UUID) curto.

Ele retorna um inteiro sem sinal de 64 bits (em oposição ao identificador de 128 bits em forma de string, conforme retornado pelo UUID() função).

Sintaxe


A sintaxe fica assim:
UUID_SHORT()

Portanto, nenhum argumento é necessário (ou aceito).

Exemplo


Segue um exemplo para demonstrar:
SELECT UUID_SHORT();

Resultado:
+-------------------+
| UUID_SHORT()      |
+-------------------+
| 99291717236162560 |
+-------------------+

Se eu chamá-lo outra vez, recebo um valor diferente:
SELECT UUID_SHORT();

Resultado:
+-------------------+
| UUID_SHORT()      |
+-------------------+
| 99291717236162561 |
+-------------------+

Sobre o resultado


O valor retornado por UUID_SHORT() é garantido como único se as seguintes condições forem verdadeiras:
  • O server_id do host atual é único entre seu conjunto de servidores mestre e escravo
  • server_id está entre 0 e 255
  • Você não atrasa a hora do sistema para o servidor entre mysqld reinicia
  • Você não invoca UUID_SHORT() em média mais de 16 milhões de vezes por segundo entre mysqld reinicia

Observe que as instruções usando o UUID_SHORT() não são seguros para replicação baseada em instrução.

Comparado com o UUID() Função


O resultado retornado por UUID_SHORT() é semelhante ao retornado pelo UUID() função, exceto que o resultado retornado por UUID() é um número de 128 bits representado por uma string utf8 de cinco números hexadecimais em aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee formato.

Aqui está uma comparação dos dois:
SELECT 
    UUID(),
    UUID_SHORT();

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

Além disso, do MariaDB 10.6.1, um SYS_GUID() foi adicionada para melhorar a compatibilidade do Oracle.

Sem argumentos


Como mencionado, UUID_SHORT() não aceita argumentos. Aqui está o que acontece quando eu passo um argumento:
SELECT UUID_SHORT(3);

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