In MariaDB, UUID_SHORT()
ist eine integrierte Funktion, die einen kurzen Universal Unique Identifier (UUID) zurückgibt.
Es gibt eine 64-Bit-Ganzzahl ohne Vorzeichen zurück (im Gegensatz zu der 128-Bit-Kennung in Zeichenfolgenform, wie sie von UUID()
zurückgegeben wird Funktion).
Syntax
Die Syntax lautet wie folgt:
UUID_SHORT()
Daher sind keine Argumente erforderlich (oder akzeptiert).
Beispiel
Hier ist ein Beispiel zur Veranschaulichung:
SELECT UUID_SHORT();
Ergebnis:
+-------------------+ | UUID_SHORT() | +-------------------+ | 99291717236162560 | +-------------------+
Wenn ich es ein anderes Mal aufrufe, bekomme ich einen anderen Wert:
SELECT UUID_SHORT();
Ergebnis:
+-------------------+ | UUID_SHORT() | +-------------------+ | 99291717236162561 | +-------------------+
Über das Ergebnis
Der von UUID_SHORT()
zurückgegebene Wert ist garantiert eindeutig, wenn die folgenden Bedingungen zutreffen:
- Die
server_id
des aktuellen Hosts unter Ihren Master- und Slave-Servern eindeutig ist server_id
liegt zwischen0
und255
- Sie setzen Ihre Systemzeit für Ihren Server zwischen
mysqld
nicht zurück Neustart - Sie rufen
UUID_SHORT()
nicht auf im Durchschnitt mehr als 16 Millionen Mal pro Sekunde zwischenmysqld
Neustart
Beachten Sie, dass Anweisungen mit UUID_SHORT()
Funktion sind für die anweisungsbasierte Replikation nicht sicher.
Im Vergleich zur UUID()
Funktion
Das von UUID_SHORT()
zurückgegebene Ergebnis ähnelt dem von UUID()
zurückgegebenen Funktion, außer dass das Ergebnis von UUID()
zurückgegeben wird ist eine 128-Bit-Zahl, dargestellt durch eine utf8-Zeichenfolge aus fünf Hexadezimalzahlen in aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee
Format.
Hier ist ein Vergleich der beiden:
SELECT
UUID(),
UUID_SHORT();
Ergebnis:
+--------------------------------------+-------------------+ | UUID() | UUID_SHORT() | +--------------------------------------+-------------------+ | e67d0fc6-cd8d-11eb-be04-88e9fe739f3d | 99291717236162562 | +--------------------------------------+-------------------+
Zusätzlich dazu ab MariaDB 10.6.1 eine SYS_GUID()
wurde hinzugefügt, um die Oracle-Kompatibilität zu verbessern.
Keine Argumente
Wie bereits erwähnt, UUID_SHORT()
akzeptiert keine Argumente. Folgendes passiert, wenn ich ein Argument übergebe:
SELECT UUID_SHORT(3);
Ergebnis:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'UUID_SHORT'