sql >> Databáze >  >> RDS >> MariaDB

Jak UUID() funguje v MariaDB

V MariaDB, UUID() je vestavěná funkce, která vrací univerzální jedinečný identifikátor (UUID).

UUID je generováno podle „DCE 1.1:Remote Procedure Call“ (Příloha A) Specifikace CAE (Common Applications Environment) publikované The Open Group v říjnu 1997 (číslo dokumentu C706).

Syntaxe

Syntaxe vypadá takto:

UUID()

Nejsou tedy vyžadovány žádné argumenty (ani přijímány).

Příklad

Zde je příklad k demonstraci:

SELECT UUID();

Výsledek:

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

Když to zavolám jindy, dostanu jinou hodnotu:

SELECT UUID();

Výsledek:

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

O UUID

UUID (Universal Unique Identifier) ​​je číslo, které je navrženo tak, aby bylo globálně jedinečné v prostoru a čase. Dvě volání UUID() očekává se, že vygenerují dvě různé hodnoty, i když jsou tato volání prováděna na dvou samostatných počítačích, které nejsou vzájemně propojeny.

UUID je 128bitové číslo reprezentované řetězcem utf8 pěti hexadecimálních čísel v aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee formát:

  • První tři čísla jsou generována z časového razítka.
  • Čtvrté číslo zachovává časovou jedinečnost pro případ, že hodnota časového razítka ztratí monotónnost (například kvůli letnímu času).
  • Páté číslo je číslo uzlu IEEE 802, které poskytuje prostorovou jedinečnost. Náhodné číslo je nahrazeno, pokud není k dispozici. V takových případech nelze zaručit prostorovou jedinečnost. Kolize by však měla být událostí s extrémně nízkou pravděpodobností.

Všimněte si, že příkazy používající UUID() funkce nejsou bezpečné pro replikaci založenou na příkazech.

Ve srovnání s SYS_GUID() Funkce

Výsledek vrácený UUID() je podobný tomu, který vrací SYS_GUID() funkce, kromě SYS_GUID() nezahrnuje symbol pomlčky (- ) ve výsledku (zatímco UUID() ano).

Zde je srovnání těchto dvou:

SELECT 
    UUID(),
    SYS_GUID();

Výsledek:

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

SYS_GUID() funkce byla představena v MariaDB 10.6.1, aby zlepšila kompatibilitu Oracle.

Je zde také UUID_SHORT() funkce, která vrací krátké UUID jako 64bitové celé číslo bez znaménka.

Předávání argumentů

Jak již bylo zmíněno, UUID() nepřijímá žádné argumenty. Zde je to, co se stane, když předám argument:

SELECT UUID(3);

Výsledek:

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

  1. Získejte ID vloženého záznamu:PHP &MS SQL SERVER

  2. PostgreSQL:Proč se psql nemůže připojit k serveru?

  3. PHP, MySQL a časová pásma

  4. Jak vypíšete primární klíč tabulky serveru SQL?