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

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

В MariaDB, UUID() е вградена функция, която връща универсален уникален идентификатор (UUID).

UUID се генерира в съответствие със спецификациите на „DCE 1.1:Извикване на отдалечена процедура“ (Приложение A) CAE (Обща среда на приложения), публикувани от The Open Group през октомври 1997 г. (номер на документ C706).

Синтаксис

Синтаксисът е така:

UUID()

Така че не се изискват (или приемат) аргументи.

Пример

Ето пример за демонстрация:

SELECT UUID();

Резултат:

+--------------------------------------+
| UUID()                               |
+--------------------------------------+
| e5aa36ee-cd8a-11eb-be04-88e9fe739f3d |
+--------------------------------------+

Ако го извикам друг път, получавам различна стойност:

SELECT UUID();

Резултат:

+--------------------------------------+
| UUID()                               |
+--------------------------------------+
| f11b4702-cd8a-11eb-be04-88e9fe739f3d |
+--------------------------------------+

Относно UUID

UUID (Universal Unique Identifier) ​​е число, което е проектирано да бъде глобално уникално в пространството и времето. Две извиквания към UUID() се очаква да генерират две различни стойности, дори ако тези повиквания се извършват на два отделни компютъра, които не са свързани един с друг.

UUID е 128-битово число, представено от utf8 низ от пет шестнадесетични числа в aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee формат:

  • Първите три числа се генерират от времеви печат.
  • Четвъртото число запазва временната уникалност в случай, че стойността на времевата марка загуби монотонност (например поради лятно часово време).
  • Петият номер е номер на възел IEEE 802, който осигурява пространствена уникалност. Случайно число се заменя, ако последното не е налично. В такива случаи не може да се гарантира пространствена уникалност. Като се има предвид това, сблъсъкът трябва да бъде събитие с изключително ниска вероятност.

Имайте предвид, че изрази, използващи UUID() функции не са безопасни за репликация, базирана на изрази.

В сравнение с SYS_GUID() Функция

Резултатът, върнат от UUID() е подобен на този, върнат от SYS_GUID() функция, с изключение на SYS_GUID() не включва символа за тире (- ) в резултата (като има предвид, че UUID() прави).

Ето сравнение на двете:

SELECT 
    UUID(),
    SYS_GUID();

Резултат:

+--------------------------------------+----------------------------------+
| UUID()                               | SYS_GUID()                       |
+--------------------------------------+----------------------------------+
| 9e795ffc-cd71-11eb-8f75-0800270503a7 | 9E796001CD7111EB8F750800270503A7 |
+--------------------------------------+----------------------------------+

SYS_GUID() функцията беше въведена в MariaDB 10.6.1 за подобряване на съвместимостта с Oracle.

Има и UUID_SHORT() функция, която връща кратък UUID като 64-битово цяло число без знак.

Предаване на аргументи

Както споменахме, UUID() не приема никакви аргументи. Ето какво се случва, когато предам аргумент:

SELECT UUID(3);

Резултат:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'UUID'

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MariaDB LAST_INSERT_ID() Обяснено

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

  3. Как работи LOG2() в MariaDB

  4. Как работи FROM_UNIXTIME() в MariaDB

  5. Ръководство за автоматизация на бази данни с Severalnines ClusterControl