IS_UUID | Syntax: | IS_UUID(Zeichenkette) | Rückgabe-Wert: | INTEGER | Funktions-Typ: | Sonstige Funktion | |
|
|
Die SQL-Funktion IS_UUID() gibt 1 zurück, wenn das Argument "Zeichenkette" eine gültige UUID im Zeichenfolgenformat ist.
Ist "Zeichenkette" keine gültige UUID, gibt die Funktion 0 zurück.
Ist der Wert von "Zeichenkette" NULL, gibt die IS_UUID()-Funktion NULL zurück.
Gültige Formate mit Hexadezimal-Werten sind:
aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeee
aaaaaaaabbbbccccddddeeeeeeeeeeee
{aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeee}
Diese Funktion wurde in MySQL ab Version 8.0 eingeführt. In MariaDB ist sie nicht vorhanden. |
SQL Beispiele für die IS_UUID-Funktion |
|
SELECT IS_UUID('decb92d4-d5bd-11ed-9a48-0800275588ea');
SELECT IS_UUID('decb92d4d5bd11ed9a480800275588ea');
SELECT IS_UUID('decb92d4d5bd-11ed-9a48-0800275588ea');
SELECT IS_UUID('');
SELECT IS_UUID(null);
|
|
IS_UUID('decb92d4-d5bd-11ed-9a48-0800275588ea') |
bigint(1) |
1 |
|
|
IS_UUID('decb92d4d5bd11ed9a480800275588ea') |
bigint(1) |
1 |
|
|
IS_UUID('decb92d4d5bd-11ed-9a48-0800275588ea') |
bigint(1) |
0 |
|
|
|
IS_UUID(null) |
bigint(1) |
NULL |
|
|
|
Beispiel zur Erstellung einer Ersatz-Funktion für IS_UUID() in MariaDB |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
|
/* Use MULTI-QUERY-Option in myway SQL manager */
DROP FUNCTION IF EXISTS IS_UUID;
CREATE FUNCTION IS_UUID(id varchar(128))
RETURNS integer
BEGIN
if id is null then
return null;
else
if char_length(id)=38 then
if substr(id, 1, 1)='{' and substr(id, 38, 1)='}' then
set id=substr(id, 2, 36);
end if;
end if;
if char_length(id)=36 then
if substr(id, 9, 1)='-' and substr(id, 14, 1)='-' and
substr(id, 19, 1)='-' and substr(id, 24, 1)='-' then
set id=replace(id,'-','');
end if;
end if;
if char_length(id)=32 then
if unhex(id) is null then return 0; else return 1; end if;
else
return 0;
end if;
end if;
END;
SELECT IS_UUID('{decb92d4-d5bd-11ed-9a48-0800275588ea}');
SELECT IS_UUID('decb92d4-d5bd-11ed-9a48-0800275588ea');
SELECT IS_UUID('decb92d4d5bd11ed9a480800275588ea');
SELECT IS_UUID('XXXXXXXX-d5bd-11ed-9a48-0800275588ea');
SELECT IS_UUID('decb92d4d5bd-11ed-9a48-0800275588ea');
SELECT IS_UUID('');
SELECT IS_UUID(null);
|
|
IS_UUID('{decb92d4-d5bd-11ed-9a48-0800275588ea}') |  |
|
int(11) |
1 |
|
|
IS_UUID('decb92d4-d5bd-11ed-9a48-0800275588ea') |  |
|
int(11) |
1 |
|
|
IS_UUID('decb92d4d5bd11ed9a480800275588ea') |  |
|
int(11) |
1 |
|
|
IS_UUID('XXXXXXXX-d5bd-11ed-9a48-0800275588ea') |  |
|
int(11) |
0 |
|
|
IS_UUID('decb92d4d5bd-11ed-9a48-0800275588ea') |  |
|
int(11) |
0 |
|
|
IS_UUID('') |  |
|
int(11) |
0 |
|
|
IS_UUID(null) |  |
|
int(11) |
NULL |
|
|
|
Die Beispiele wurden mit dem MyWAY SQL-Manager erstellt: |
Verwendung der IS_UUID() Funktion in MySQL und MariaDB-Datenbanken |
In MySQL und MariaDB wird die Funktion IS_UUID() verwendet, um zu überprüfen, ob eine bestimmte Zeichenfolge eine gültige UUID (Universally Unique Identifier) ist. Dabei gibt die Funktion 1 zurück, wenn die Zeichenfolge eine gültige UUID ist und 0, wenn dies nicht der Fall ist, beispielsweise um vom Benutzer bereitgestellte UUID-Werte zu validieren, bevor sie in Datenbankoperationen verwendet werden.
Die IS_UUID()-Funktion kann in Kombination mit anderen Abfragebedingungen verwendet werden, um Zeilen basierend auf der Gültigkeit der in einer Tabellen-Spalte gespeicherten UUID-Werte zu filtern oder abzufragen, oder um in Datenbank-Triggern oder -Einschränkungen die Verwendung gültiger UUIDs zu erzwingen und die Datenintegrität aufrechtzuerhalten. Dabei führt die Funktion eine grundlegende Syntaxprüfung der bereitgestellten Zeichenfolge durch und stellt sicher, dass sie dem UUID-Format entspricht. Es wird jedoch nicht geprüft, ob die Zeichenfolge einer bekannten oder vorhandenen UUID entspricht. Daher ist es möglich, dass IS_UUID() Zeichenfolgen für gültig erklärt, die dem UUID-Format entsprechen, aber nicht unbedingt gültig sind. |
|
Weitere MySQL und MariaDB SQL Sonstige Funktionen |
|