MariaDB
 sql >> Base de données >  >> RDS >> MariaDB

Comment fonctionne UUID_SHORT() dans MariaDB

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 entre 0 et 255
  • 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 entre mysqld 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'