IS_UUID() în MySQL

Verifică dacă un text este un UUID valid: 1 (da), 0 (nu) sau NULL.

Sintaxă
IS_UUID(text)

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.