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

Sådan fungerer UUID_SHORT() i MariaDB

I MariaDB, UUID_SHORT() er en indbygget funktion, der returnerer en kort Universal Unique Identifier (UUID).

Det returnerer et 64-bit usigneret heltal (i modsætning til strengformede 128-bit identifikator som returneret af UUID() funktion).

Syntaks

Syntaksen ser sådan ud:

UUID_SHORT()

Så der kræves ingen argumenter (eller accepteres).

Eksempel

Her er et eksempel til demonstration:

SELECT UUID_SHORT();

Resultat:

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

Hvis jeg kalder det en anden gang, får jeg en anden værdi:

SELECT UUID_SHORT();

Resultat:

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

Om resultatet

Værdien returneret af UUID_SHORT() er garanteret unik, hvis følgende betingelser er sande:

  • server_id af den aktuelle vært er unik blandt dit sæt master- og slaveservere
  • server_id er mellem 0 og 255
  • Du sætter ikke din systemtid tilbage for din server mellem mysqld genstarter
  • Du påberåber dig ikke UUID_SHORT() i gennemsnit mere end 16 millioner gange i sekundet mellem mysqld genstarter

Bemærk, at sætninger bruger UUID_SHORT() funktion er ikke sikre til sætningsbaseret replikering.

Sammenlignet med UUID() Funktion

Resultatet returneret af UUID_SHORT() ligner den, der returneres af UUID() funktion, bortset fra at resultatet returneres af UUID() er et 128-bit tal repræsenteret af en utf8-streng med fem hexadecimale tal i aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee format.

Her er en sammenligning af de to:

SELECT 
    UUID(),
    UUID_SHORT();

Resultat:

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

Ud over dette, fra MariaDB 10.6.1, en SYS_GUID() funktion er blevet tilføjet for at forbedre Oracle-kompatibiliteten.

Ingen argumenter

Som nævnt, UUID_SHORT() accepterer ingen argumenter. Her er, hvad der sker, når jeg sender et argument:

SELECT UUID_SHORT(3);

Resultat:

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

  1. BESTIL AF med indre forespørgsel, hvilket giver ORA-00907 manglende højre parentes

  2. Kombiner to tabeller til en ny, så udvalgte rækker fra den anden ignoreres

  3. Sådan indsætter du resultaterne af en lagret procedure i en midlertidig tabel i SQL Server

  4. Flere forsinkede replikeringsslaver til katastrofeoprettelse med lav RTO