В MariaDB, UUID_SHORT() е вградена функция, която връща кратък универсален уникален идентификатор (UUID).
Връща 64-битово цяло число без знак (за разлика от 128-битовия идентификатор на низовата форма, върнат от UUID() функция).
Синтаксис
Синтаксисът е така:
UUID_SHORT() Така че не се изискват (или приемат) аргументи.
Пример
Ето пример за демонстрация:
SELECT UUID_SHORT(); Резултат:
+-------------------+ | UUID_SHORT() | +-------------------+ | 99291717236162560 | +-------------------+
Ако го извикам друг път, получавам различна стойност:
SELECT UUID_SHORT(); Резултат:
+-------------------+ | UUID_SHORT() | +-------------------+ | 99291717236162561 | +-------------------+
Относно резултата
Стойността, върната от UUID_SHORT() е гарантирано, че е уникален, ако са изпълнени следните условия:
server_idна текущия хост е уникален сред вашия набор от главни и подчинени сървъриserver_idе между0и255- Не променяте системното си време за сървъра си между
mysqldрестартира - Не извиквате
UUID_SHORT()средно повече от 16 милиона пъти в секунда междуmysqldрестартира
Имайте предвид, че изрази, използващи UUID_SHORT() функции не са безопасни за репликация, базирана на изрази.
В сравнение с UUID() Функция
Резултатът, върнат от UUID_SHORT() е подобен на този, върнат от UUID() функция, с изключение на това, че резултатът, върнат от UUID() е 128-битово число, представено от utf8 низ от пет шестнадесетични числа в aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee формат.
Ето сравнение на двете:
SELECT
UUID(),
UUID_SHORT(); Резултат:
+--------------------------------------+-------------------+ | UUID() | UUID_SHORT() | +--------------------------------------+-------------------+ | e67d0fc6-cd8d-11eb-be04-88e9fe739f3d | 99291717236162562 | +--------------------------------------+-------------------+
В допълнение към това, от MariaDB 10.6.1, SYS_GUID() е добавена функция, за да се подобри съвместимостта с Oracle.
Без аргументи
Както бе споменато, UUID_SHORT() не приема никакви аргументи. Ето какво се случва, когато предам аргумент:
SELECT UUID_SHORT(3); Резултат:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'UUID_SHORT'