Dans MariaDB, UUID_SHORT()
est une fonction intégrée qui renvoie un court identifiant unique universel (UUID).
Il renvoie un entier non signé de 64 bits (par opposition à l'identifiant de 128 bits sous forme de chaîne renvoyé par UUID()
fonction).
Syntaxe
La syntaxe ressemble à ceci :
UUID_SHORT()
Ainsi, aucun argument n'est requis (ou accepté).
Exemple
Voici un exemple pour illustrer :
SELECT UUID_SHORT();
Résultat :
+-------------------+ | UUID_SHORT() | +-------------------+ | 99291717236162560 | +-------------------+
Si je l'appelle une autre fois, j'obtiens une valeur différente :
SELECT UUID_SHORT();
Résultat :
+-------------------+ | UUID_SHORT() | +-------------------+ | 99291717236162561 | +-------------------+
À propos du résultat
La valeur renvoyée par UUID_SHORT()
est garanti unique si les conditions suivantes sont remplies :
- Le
server_id
de l'hôte actuel est unique parmi votre ensemble de serveurs maître et esclave server_id
est compris entre0
et255
- Vous ne réglez pas l'heure système de votre serveur entre
mysqld
redémarre - Vous n'invoquez pas
UUID_SHORT()
en moyenne plus de 16 millions de fois par seconde entremysqld
redémarre
Notez que les instructions utilisant le UUID_SHORT()
fonction ne sont pas sûrs pour la réplication basée sur des instructions.
Comparé à l'UUID()
Fonction
Le résultat renvoyé par UUID_SHORT()
est similaire à celui retourné par le UUID()
fonction, sauf que le résultat renvoyé par UUID()
est un nombre de 128 bits représenté par une chaîne utf8 de cinq nombres hexadécimaux dans aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee
format.
Voici une comparaison des deux :
SELECT
UUID(),
UUID_SHORT();
Résultat :
+--------------------------------------+-------------------+ | UUID() | UUID_SHORT() | +--------------------------------------+-------------------+ | e67d0fc6-cd8d-11eb-be04-88e9fe739f3d | 99291717236162562 | +--------------------------------------+-------------------+
En plus de cela, depuis MariaDB 10.6.1, un SYS_GUID()
fonction a été ajoutée afin d'améliorer la compatibilité Oracle.
Aucun argument
Comme mentionné, UUID_SHORT()
n'accepte aucun argument. Voici ce qui se passe lorsque je passe un argument :
SELECT UUID_SHORT(3);
Résultat :
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'UUID_SHORT'