Ce face IS_UUID()
IS_UUID() verifică doar forma textului: lungimea corectă și numai cifre hexazecimale (litere mici sau mari), cu sau fără cratime și acolade. Sunt acceptate formele aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee, aaaaaaaabbbbccccddddeeeeeeeeeeee și {aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee}.
Este utilă înainte de UUID_TO_BIN(), care dă eroare pentru un text invalid.
Parametri
| Parametru | Descriere |
|---|---|
text |
Textul verificat. |
Ce returnează
1, 0 sau NULL.
Exemple
Exemplul 1: Forme valide și invalide
SELECT IS_UUID('6ccd780c-baba-1026-9564-5b8c656024db') AS cu_cratime,
IS_UUID('6CCD780CBABA102695645B8C656024DB') AS fara_cratime,
IS_UUID('{6ccd780c-baba-1026-9564-5b8c656024db}') AS cu_acolade,
IS_UUID('6ccd780c-baba-1026') AS prea_scurt,
IS_UUID(NULL) AS nul;
Rezultat
+------------+--------------+------------+------------+------+
| cu_cratime | fara_cratime | cu_acolade | prea_scurt | nul |
+------------+--------------+------------+------------+------+
| 1 | 1 | 1 | 0 | NULL |
+------------+--------------+------------+------------+------+
Exemplul 2: Doar valorile valide sunt convertite
CREATE TABLE import_comenzi (cod VARCHAR(40));
INSERT INTO import_comenzi VALUES ('6ccd780c-baba-1026-9564-5b8c656024db'), ('comanda-42'), (NULL);
SELECT cod, IF(IS_UUID(cod), HEX(UUID_TO_BIN(cod)), 'invalid') AS binar
FROM import_comenzi;
Rezultat
+--------------------------------------+----------------------------------+
| cod | binar |
+--------------------------------------+----------------------------------+
| 6ccd780c-baba-1026-9564-5b8c656024db | 6CCD780CBABA102695645B8C656024DB |
| comanda-42 | invalid |
| NULL | invalid |
+--------------------------------------+----------------------------------+
Greșeli frecvente
- Crezi că
IS_UUID()verifică dacă UUID-ul există în tabel. Verifică doar formatul textului.
Comenzi înrudite
UUID(): Generează un identificator unic universal (UUID versiunea 1), un text de 36 de caractere.UUID_TO_BIN(): Transformă un UUID text (36 de caractere) în 16 octeți binari, potriviți pentru coloane BINARY(16).BIN_TO_UUID(): Transformă un UUID binar (16 octeți) înapoi în text de 36 de caractere.