- Categorias:
Funções de cadeia de caracteres e binários (Geral) , Funções de geração de dados
UUID_STRING¶
Gera uma versão 4 (aleatória) ou uma versão 5 (nomeada) de um identificador universal exclusivo (UUID) compatível com RFC 4122 como uma cadeia de caracteres formatada.
Sintaxe¶
UUID_STRING()
UUID_STRING( '<uuid>' , '<name>' )
Argumentos¶
'uuid'
Uma cadeia de caracteres de UUID válida. Esse valor é o namespace usado para gerar o UUID retornado.
'name'
O nome usado para gerar o UUID retornado.
Retornos¶
Essa função retorna um valor de 128 bits, formatado como uma cadeia de caracteres (tipo de dados VARCHAR).
Notas de uso¶
UUID_STRING oferece suporte à geração de duas versões de UUIDs, ambas em conformidade com RFC 4122:
Uma UUID de versão 4 (aleatória) é retornada quando não são fornecidos argumentos para a função. Para a geração de números aleatórios, é usado um algoritmo de 64 bits Mersenne twister conhecido como MT19937-64.
Uma UUID de versão 5 (nomeada) pode ser produzida fornecendo uma cadeia de caracteres
uuid
(conhecida como namespace) como o primeiro argumento e uma cadeia de caracteresname
como o segundo argumento.
Exemplos¶
Gere um UUID aleatório:
SELECT UUID_STRING();
+--------------------------------------+
| UUID_STRING() |
|--------------------------------------|
| d47f4e30-306f-4940-8921-c154094df1a1 |
+--------------------------------------+
Gere um UUID nomeado:
SELECT UUID_STRING('fe971b24-9572-4005-b22f-351e9c09274d','foo');
+-----------------------------------------------------------+
| UUID_STRING('FE971B24-9572-4005-B22F-351E9C09274D','FOO') |
|-----------------------------------------------------------|
| dc0b6f65-fca6-5b4b-9d37-ccc3fde1f3e2 |
+-----------------------------------------------------------+
Crie uma tabela e insira UUIDs aleatórios:
CREATE OR REPLACE TABLE uuid_insert_test(random_uuid VARCHAR(36), test VARCHAR(10));
INSERT INTO uuid_insert_test (random_uuid, test) SELECT UUID_STRING(), 'test1';
INSERT INTO uuid_insert_test (random_uuid, test) SELECT UUID_STRING(), 'test2';
INSERT INTO uuid_insert_test (random_uuid, test) SELECT UUID_STRING(), 'test3';
INSERT INTO uuid_insert_test (random_uuid, test) SELECT UUID_STRING(), 'test4';
INSERT INTO uuid_insert_test (random_uuid, test) SELECT UUID_STRING(), 'test5';
SELECT * FROM uuid_insert_test;
+--------------------------------------+-------+
| RANDOM_UUID | TEST |
|--------------------------------------+-------|
| 7745a0cf-d136-406b-9289-38072d242871 | test1 |
| 8c31e031-a6bf-479d-9abb-b7909f298ba1 | test2 |
| e65d5641-01c0-4126-b80d-c5ae6d4848be | test3 |
| bd02bf4e-fa5d-498d-8a9a-d38200f1ca30 | test4 |
| 4df2a34e-ad65-46b4-a51a-3eb9394aeb83 | test5 |
+--------------------------------------+-------+