MariaDB
 sql >> Database >  >> RDS >> MariaDB

Come funziona UUID_SHORT() in MariaDB

In MariaDB, UUID_SHORT() è una funzione incorporata che restituisce un breve Universal Unique Identifier (UUID).

Restituisce un intero senza segno a 64 bit (al contrario dell'identificatore a 128 bit in forma di stringa restituito da UUID() funzione).

Sintassi

La sintassi è questa:

UUID_SHORT()

Quindi, nessun argomento è richiesto (o accettato).

Esempio

Ecco un esempio da dimostrare:

SELECT UUID_SHORT();

Risultato:

+-------------------+
| UUID_SHORT()      |
+-------------------+
| 99291717236162560 |
+-------------------+

Se lo chiamo un'altra volta, ottengo un valore diverso:

SELECT UUID_SHORT();

Risultato:

+-------------------+
| UUID_SHORT()      |
+-------------------+
| 99291717236162561 |
+-------------------+

Informazioni sul risultato

Il valore restituito da UUID_SHORT() è garantito come unico se sono vere le seguenti condizioni:

  • Il server_id dell'host corrente è unico nel tuo set di server master e slave
  • server_id è compreso tra 0 e 255
  • Non reimposti l'ora di sistema per il tuo server tra mysqld si riavvia
  • Non invochi UUID_SHORT() in media più di 16 milioni di volte al secondo tra mysqld si riavvia

Nota che le istruzioni usano UUID_SHORT() non sono sicure per la replica basata su istruzioni.

Rispetto a UUID() Funzione

Il risultato restituito da UUID_SHORT() è simile a quello restituito da UUID() funzione, tranne per il risultato restituito da UUID() è un numero a 128 bit rappresentato da una stringa utf8 di cinque numeri esadecimali in aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee formato.

Ecco un confronto tra i due:

SELECT 
    UUID(),
    UUID_SHORT();

Risultato:

+--------------------------------------+-------------------+
| UUID()                               | UUID_SHORT()      |
+--------------------------------------+-------------------+
| e67d0fc6-cd8d-11eb-be04-88e9fe739f3d | 99291717236162562 |
+--------------------------------------+-------------------+

In aggiunta a questo, da MariaDB 10.6.1, un SYS_GUID() è stata aggiunta la funzione per migliorare la compatibilità Oracle.

Nessun argomento

Come accennato, UUID_SHORT() non accetta argomenti. Ecco cosa succede quando passo un argomento:

SELECT UUID_SHORT(3);

Risultato:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'UUID_SHORT'