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á entre0
e255
- 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 entremysqld
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'