W MariaDB UUID_SHORT()
to wbudowana funkcja, która zwraca krótki uniwersalny unikalny identyfikator (UUID).
Zwraca 64-bitową liczbę całkowitą bez znaku (w przeciwieństwie do 128-bitowego identyfikatora w postaci ciągu zwracanego przez UUID()
funkcja).
Składnia
Składnia wygląda tak:
UUID_SHORT()
Tak więc żadne argumenty nie są wymagane (ani akceptowane).
Przykład
Oto przykład do zademonstrowania:
SELECT UUID_SHORT();
Wynik:
+-------------------+ | UUID_SHORT() | +-------------------+ | 99291717236162560 | +-------------------+
Jeśli wywołam to innym razem, otrzymam inną wartość:
SELECT UUID_SHORT();
Wynik:
+-------------------+ | UUID_SHORT() | +-------------------+ | 99291717236162561 | +-------------------+
O wyniku
Wartość zwracana przez UUID_SHORT()
gwarantuje unikalność, jeśli spełnione są następujące warunki:
server_id
bieżącego hosta jest unikalny wśród twojego zestawu serwerów głównych i podrzędnychserver_id
jest między0
i255
- Nie cofasz czasu systemowego dla serwera między
mysqld
uruchamia się ponownie - Nie wywołujesz
UUID_SHORT()
średnio ponad 16 milionów razy na sekundę międzymysqld
uruchamia się ponownie
Zauważ, że instrukcje używające UUID_SHORT()
funkcje nie są bezpieczne dla replikacji opartej na instrukcjach.
W porównaniu z UUID()
Funkcja
Wynik zwrócony przez UUID_SHORT()
jest podobny do zwracanego przez UUID()
funkcja, z wyjątkiem tego, że wynik zwracany przez UUID()
to 128-bitowa liczba reprezentowana przez ciąg utf8 złożony z pięciu liczb szesnastkowych w aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee
format.
Oto porównanie tych dwóch:
SELECT
UUID(),
UUID_SHORT();
Wynik:
+--------------------------------------+-------------------+ | UUID() | UUID_SHORT() | +--------------------------------------+-------------------+ | e67d0fc6-cd8d-11eb-be04-88e9fe739f3d | 99291717236162562 | +--------------------------------------+-------------------+
Oprócz tego, z MariaDB 10.6.1, SYS_GUID()
dodano funkcję w celu zwiększenia kompatybilności z Oracle.
Brak argumentów
Jak wspomniano, UUID_SHORT()
nie przyjmuje żadnych argumentów. Oto, co się dzieje, gdy przekazuję argument:
SELECT UUID_SHORT(3);
Wynik:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'UUID_SHORT'