sql >> Databasteknik >  >> RDS >> MariaDB

Hur UUID_SHORT() fungerar i MariaDB

I MariaDB, UUID_SHORT() är en inbyggd funktion som returnerar en kort Universal Unique Identifier (UUID).

Den returnerar ett 64-bitars osignerat heltal (i motsats till strängformad 128-bitars identifierare som returneras av UUID() funktion).

Syntax

Syntaxen ser ut så här:

UUID_SHORT()

Så inga argument krävs (eller accepteras).

Exempel

Här är ett exempel att visa:

SELECT UUID_SHORT();

Resultat:

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

Om jag ringer det en annan gång får jag ett annat värde:

SELECT UUID_SHORT();

Resultat:

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

Om resultatet

Värdet som returneras av UUID_SHORT() är garanterat unik om följande villkor är uppfyllda:

  • server_id för den nuvarande värden är unik bland din uppsättning master- och slavservrar
  • server_id är mellan 0 och 255
  • Du ställer inte tillbaka din systemtid för din server mellan mysqld startar om
  • Du anropar inte UUID_SHORT() i genomsnitt mer än 16 miljoner gånger per sekund mellan mysqld startar om

Observera att satser som använder UUID_SHORT() funktion är inte säkra för programsatsbaserad replikering.

Jämfört med UUID() Funktion

Resultatet returneras av UUID_SHORT() liknar den som returneras av UUID() funktion, förutom att resultatet returneras av UUID() är ett 128-bitars tal representerat av en utf8-sträng med fem hexadecimala tal i aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee formatera.

Här är en jämförelse av de två:

SELECT 
    UUID(),
    UUID_SHORT();

Resultat:

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

Utöver detta, från MariaDB 10.6.1, en SYS_GUID() funktion har lagts till för att förbättra Oracle-kompatibiliteten.

Inga argument

Som nämnts, UUID_SHORT() accepterar inga argument. Så här händer när jag klarar ett argument:

SELECT UUID_SHORT(3);

Resultat:

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

  1. Hur NULLIF() fungerar i SQL Server

  2. Konvertera MySQL till SQLite

  3. USER-funktion i Oracle

  4. Bifoga strängar i enstaka citattecken i SQLite-frågeresultat