V MariaDB, UUID() je vestavěná funkce, která vrací univerzální jedinečný identifikátor (UUID).
UUID je generováno podle „DCE 1.1:Remote Procedure Call“ (Příloha A) Specifikace CAE (Common Applications Environment) publikované The Open Group v říjnu 1997 (číslo dokumentu C706).
Syntaxe
Syntaxe vypadá takto:
UUID() Nejsou tedy vyžadovány žádné argumenty (ani přijímány).
Příklad
Zde je příklad k demonstraci:
SELECT UUID(); Výsledek:
+--------------------------------------+ | UUID() | +--------------------------------------+ | e5aa36ee-cd8a-11eb-be04-88e9fe739f3d | +--------------------------------------+
Když to zavolám jindy, dostanu jinou hodnotu:
SELECT UUID(); Výsledek:
+--------------------------------------+ | UUID() | +--------------------------------------+ | f11b4702-cd8a-11eb-be04-88e9fe739f3d | +--------------------------------------+
O UUID
UUID (Universal Unique Identifier) je číslo, které je navrženo tak, aby bylo globálně jedinečné v prostoru a čase. Dvě volání UUID() očekává se, že vygenerují dvě různé hodnoty, i když jsou tato volání prováděna na dvou samostatných počítačích, které nejsou vzájemně propojeny.
UUID je 128bitové číslo reprezentované řetězcem utf8 pěti hexadecimálních čísel v aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee formát:
- První tři čísla jsou generována z časového razítka.
- Čtvrté číslo zachovává časovou jedinečnost pro případ, že hodnota časového razítka ztratí monotónnost (například kvůli letnímu času).
- Páté číslo je číslo uzlu IEEE 802, které poskytuje prostorovou jedinečnost. Náhodné číslo je nahrazeno, pokud není k dispozici. V takových případech nelze zaručit prostorovou jedinečnost. Kolize by však měla být událostí s extrémně nízkou pravděpodobností.
Všimněte si, že příkazy používající UUID() funkce nejsou bezpečné pro replikaci založenou na příkazech.
Ve srovnání s SYS_GUID() Funkce
Výsledek vrácený UUID() je podobný tomu, který vrací SYS_GUID() funkce, kromě SYS_GUID() nezahrnuje symbol pomlčky (- ) ve výsledku (zatímco UUID() ano).
Zde je srovnání těchto dvou:
SELECT
UUID(),
SYS_GUID(); Výsledek:
+--------------------------------------+----------------------------------+ | UUID() | SYS_GUID() | +--------------------------------------+----------------------------------+ | 9e795ffc-cd71-11eb-8f75-0800270503a7 | 9E796001CD7111EB8F750800270503A7 | +--------------------------------------+----------------------------------+
SYS_GUID() funkce byla představena v MariaDB 10.6.1, aby zlepšila kompatibilitu Oracle.
Je zde také UUID_SHORT() funkce, která vrací krátké UUID jako 64bitové celé číslo bez znaménka.
Předávání argumentů
Jak již bylo zmíněno, UUID() nepřijímá žádné argumenty. Zde je to, co se stane, když předám argument:
SELECT UUID(3); Výsledek:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'UUID'