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'