В 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'