Catégories :

Fonctions de chaîne et fonctions binaires (général), Fonctions de génération de données

UUID_STRING

Génère un identifiant unique universel (UUID) conforme à 4122 avec soit une version 4 (aléatoire), soit une version 5 (nommée) RFC, sou la forme d’une chaîne formatée.

Syntaxe

UUID_STRING()

UUID_STRING( '<uuid>' , '<name>' )
Copy

Arguments

'uuid'

Une chaîne UUID valide. Cette valeur correspond à l’espace de noms utilisé pour générer l’UUID renvoyé.

'name'

Nom utilisé pour générer l’UUID renvoyé.

Renvoie

Cette fonction renvoie une valeur de 128 bits, formatée en chaîne (type de donnéesVARCHAR).

Notes sur l’utilisation

UUID_STRING prend en charge la génération de deux versions de UUIDs, toutes deux conformes à RFC 4122 :

  • Une version 4 (aléatoire) d’UUID est renvoyée lorsqu’aucun argument n’est fourni à la fonction. Pour la génération de nombres aléatoires, le Mersenne Twister connu sous le nom de MT19937-64 est utilisé.

  • Une version 5 (nommée) d’UUID peut être générée en fournissant une chaîne uuid (appelée espace de noms) en tant que premier argument et une chaîne de type name en tant que second argument.

Exemples

Générer un UUID aléatoire :

SELECT UUID_STRING();
Copy
+--------------------------------------+
| UUID_STRING()                        |
|--------------------------------------|
| d47f4e30-306f-4940-8921-c154094df1a1 |
+--------------------------------------+

Générer un UUID nommé :

SELECT UUID_STRING('fe971b24-9572-4005-b22f-351e9c09274d','foo');
Copy
+-----------------------------------------------------------+
| UUID_STRING('FE971B24-9572-4005-B22F-351E9C09274D','FOO') |
|-----------------------------------------------------------|
| dc0b6f65-fca6-5b4b-9d37-ccc3fde1f3e2                      |
+-----------------------------------------------------------+

Créer une table et insérer des UUIDs aléatoires :

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;
Copy
+--------------------------------------+-------+
| 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 |
+--------------------------------------+-------+