MariaDB
 sql >> Datenbank >  >> RDS >> MariaDB

Wie UUID_SHORT() in MariaDB funktioniert

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 zwischen 0 und 255
  • 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 zwischen mysqld 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'