In MariaDB, UUID()
ist eine integrierte Funktion, die einen Universal Unique Identifier (UUID) zurückgibt.
Die UUID wird gemäß „DCE 1.1:Remote Procedure Call“ (Anhang A) CAE-Spezifikationen (Common Applications Environment) generiert, die von The Open Group im Oktober 1997 veröffentlicht wurden (Dokumentnummer C706).
Syntax
Die Syntax lautet wie folgt:
UUID()
Daher sind keine Argumente erforderlich (oder akzeptiert).
Beispiel
Hier ist ein Beispiel zur Veranschaulichung:
SELECT UUID();
Ergebnis:
Wenn ich es ein anderes Mal aufrufe, bekomme ich einen anderen Wert:
SELECT UUID();
Ergebnis:
Über die UUID
Eine UUID (Universal Unique Identifier) ist eine Zahl, die räumlich und zeitlich weltweit eindeutig sein soll. Zwei Aufrufe von UUID()
werden zwei unterschiedliche Werte erwartet, selbst wenn diese Aufrufe auf zwei separaten Computern durchgeführt werden, die nicht miteinander verbunden sind.
Eine UUID ist eine 128-Bit-Zahl, die durch eine utf8-Zeichenfolge aus fünf Hexadezimalzahlen in aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee
dargestellt wird Format:
- Die ersten drei Zahlen werden aus einem Zeitstempel generiert.
- Die vierte Zahl bewahrt die zeitliche Eindeutigkeit für den Fall, dass der Zeitstempelwert an Monotonie verliert (z. B. aufgrund der Sommerzeit).
- Die fünfte Zahl ist eine IEEE 802-Knotennummer, die für räumliche Eindeutigkeit sorgt. Eine Zufallszahl wird ersetzt, wenn letztere nicht verfügbar ist. In solchen Fällen kann die räumliche Eindeutigkeit nicht garantiert werden. Allerdings sollte eine Kollision ein Ereignis mit äußerst geringer Wahrscheinlichkeit sein.
Beachten Sie, dass Anweisungen mit UUID()
Funktion sind für die anweisungsbasierte Replikation nicht sicher.
Im Vergleich zu SYS_GUID()
Funktion
Das von UUID()
zurückgegebene Ergebnis ähnelt dem von SYS_GUID()
zurückgegebenen Funktion, außer dass SYS_GUID()
enthält kein Bindestrichsymbol (-
) im Ergebnis (wobei UUID()
tut).
Hier ist ein Vergleich der beiden:
SELECT
UUID(),
SYS_GUID();
Ergebnis:
+-------------------------------------+------- ----------------------------+| UUID() | SYS_GUID() |+-------------------------------------+------ ----------------------------+| 9e795ffc-cd71-11eb-8f75-0800270503a7 | 9E796001CD7111EB8F750800270503A7 |+--------------------------------------+-------- --------------------------+
Die SYS_GUID()
Funktion wurde in MariaDB 10.6.1 eingeführt, um die Oracle-Kompatibilität zu verbessern.
Es gibt auch einen UUID_SHORT()
Funktion, die eine kurze UUID als 64-Bit-Ganzzahl ohne Vorzeichen zurückgibt.
Argumente übergeben
Wie bereits erwähnt, UUID()
akzeptiert keine Argumente. Folgendes passiert, wenn ich ein Argument übergebe:
SELECT UUID(3);
Ergebnis:
FEHLER 1582 (42000):Falsche Parameteranzahl im Aufruf der nativen Funktion „UUID“