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_idbieżącego hosta jest unikalny wśród twojego zestawu serwerów głównych i podrzędnychserver_idjest między0i255- Nie cofasz czasu systemowego dla serwera między
mysqlduruchamia się ponownie - Nie wywołujesz
UUID_SHORT()średnio ponad 16 milionów razy na sekundę międzymysqlduruchamia 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'