W MariaDB, UUID() to wbudowana funkcja, która zwraca uniwersalny unikalny identyfikator (UUID).
UUID jest generowany zgodnie ze specyfikacjami „DCE 1.1:Remote Procedure Call” (dodatek A) CAE (Common Applications Environment) opublikowanymi przez The Open Group w październiku 1997 r. (numer dokumentu C706).
Składnia
Składnia wygląda tak:
UUID() Tak więc żadne argumenty nie są wymagane (ani akceptowane).
Przykład
Oto przykład do zademonstrowania:
SELECT UUID(); Wynik:
+--------------------------------------+ | UUID() | +--------------------------------------+ | e5aa36ee-cd8a-11eb-be04-88e9fe739f3d | +--------------------------------------+
Jeśli wywołam to innym razem, otrzymam inną wartość:
SELECT UUID(); Wynik:
+--------------------------------------+ | UUID() | +--------------------------------------+ | f11b4702-cd8a-11eb-be04-88e9fe739f3d | +--------------------------------------+
Informacje o identyfikatorze UUID
UUID (Universal Unique Identifier) to numer, który ma być globalnie unikalny w czasie i przestrzeni. Dwa wywołania UUID() oczekuje się, że wygenerują dwie różne wartości, nawet jeśli te wywołania są wykonywane na dwóch oddzielnych komputerach, które nie są ze sobą połączone.
UUID to 128-bitowa liczba reprezentowana przez ciąg utf8 składający się z pięciu liczb szesnastkowych w aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee format:
- Pierwsze trzy liczby są generowane na podstawie znacznika czasu.
- Czwarta liczba zachowuje niepowtarzalność czasową na wypadek utraty monotonii wartości znacznika czasu (na przykład z powodu czasu letniego).
- Piąty numer to numer węzła IEEE 802, który zapewnia unikatowość przestrzenną. Liczba losowa jest zastępowana, jeśli ta ostatnia nie jest dostępna. W takich przypadkach nie można zagwarantować niepowtarzalności przestrzennej. Powiedziawszy to, kolizja powinna być zdarzeniem o wyjątkowo niskim prawdopodobieństwie.
Zauważ, że instrukcje używające UUID() funkcje nie są bezpieczne dla replikacji opartej na instrukcjach.
W porównaniu z SYS_GUID() Funkcja
Wynik zwrócony przez UUID() jest podobny do zwracanego przez SYS_GUID() funkcja, z wyjątkiem tego, że SYS_GUID() nie zawiera symbolu myślnika (- ) w wyniku (natomiast, UUID() tak).
Oto porównanie tych dwóch:
SELECT
UUID(),
SYS_GUID(); Wynik:
+--------------------------------------+----------------------------------+ | UUID() | SYS_GUID() | +--------------------------------------+----------------------------------+ | 9e795ffc-cd71-11eb-8f75-0800270503a7 | 9E796001CD7111EB8F750800270503A7 | +--------------------------------------+----------------------------------+
SYS_GUID() funkcja została wprowadzona w MariaDB 10.6.1 w celu zwiększenia kompatybilności z Oracle.
Jest też UUID_SHORT() funkcja, która zwraca krótki UUID jako 64-bitową liczbę całkowitą bez znaku.
Przekazywanie argumentów
Jak wspomniano, UUID() nie przyjmuje żadnych argumentów. Oto, co się dzieje, gdy przekazuję argument:
SELECT UUID(3); Wynik:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'UUID'