MariaDB
 sql >> база данни >  >> RDS >> MariaDB

Как UUID_SHORT() работи в MariaDB

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

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Знаете, че искате:Мигрирайте от Oracle към MariaDB

  2. Как работи WEEKOFYEAR() в MariaDB

  3. Колко ефективен е вашият ProxySQL възел?

  4. MariaDB въвежда функция JSON_TABLE().

  5. Как да извършите операция при отказ за настройка на MySQL репликация