- 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>' )
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 typename
en tant que second argument.
Exemples¶
Générer un UUID aléatoire :
SELECT UUID_STRING();
+--------------------------------------+
| UUID_STRING() |
|--------------------------------------|
| d47f4e30-306f-4940-8921-c154094df1a1 |
+--------------------------------------+
Générer un UUID nommé :
SELECT UUID_STRING('fe971b24-9572-4005-b22f-351e9c09274d','foo');
+-----------------------------------------------------------+
| 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;
+--------------------------------------+-------+
| 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 |
+--------------------------------------+-------+