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 slavservrarserver_id
är mellan0
och255
- 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 mellanmysqld
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'