Passer au contenu principal

Fonctions pour manipuler les UUIDs

Génération des UUIDv7

L’UUID généré contient un horodatage de 48 bits en millisecondes Unix, suivi de la version “7” (4 bits), d’un compteur (42 bits) permettant de distinguer les UUID au sein d’une même milliseconde (y compris un champ de variante “2”, 2 bits) et d’un champ aléatoire (32 bits). Pour un horodatage donné (unix_ts_ms), le compteur démarre à une valeur aléatoire et est incrémenté de 1 pour chaque nouvel UUID jusqu’à ce que l’horodatage change. En cas de débordement du compteur, le champ d’horodatage est incrémenté de 1 et le compteur est réinitialisé à une nouvelle valeur de départ aléatoire. Les fonctions de génération d’UUID garantissent que le champ de compteur, pour un horodatage donné, s’incrémente de façon monotone sur l’ensemble des appels de fonction effectués dans des threads et des requêtes exécutés de manière concurrente.
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
├─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┤
|                           unix_ts_ms                          |
├─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┤
|          unix_ts_ms           |  ver  |   counter_high_bits   |
├─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┤
|var|                   counter_low_bits                        |
├─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┤
|                            rand_b                             |
└─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┘

Génération des Snowflake IDs

Le Snowflake ID généré contient l’horodatage Unix actuel en millisecondes (41 + 1 bits de poids fort à zéro), suivi d’un identifiant de machine (10 bits) et d’un compteur (12 bits) pour distinguer les identifiants au sein d’une même milliseconde. Pour un horodatage donné (unix_ts_ms), le compteur commence à 0 et est incrémenté de 1 pour chaque nouveau Snowflake ID, jusqu’à ce que l’horodatage change. En cas de dépassement de capacité du compteur, le champ d’horodatage est incrémenté de 1 et le compteur est réinitialisé à 0.
Les Snowflake IDs générés sont basés sur l’époque Unix du 1970-01-01. Bien qu’il n’existe aucune norme ni recommandation concernant l’époque des Snowflake IDs, les implémentations dans d’autres systèmes peuvent utiliser une époque différente, par exemple Twitter/X (2010-11-04) ou Mastodon (2015-01-01).
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
├─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┤
|0|                         timestamp                           |
├─┼                 ┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┤
|                   |     machine_id    |    machine_seq_num    |
└─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┘

UUIDNumToString

Introduit dans : v1.1.0 Prend la représentation binaire d’un UUID, dont le format peut être indiqué de manière facultative par variant (Big-endian par défaut), et renvoie une chaîne de 36 caractères au format texte. Syntaxe
UUIDNumToString(binary[, variant])
Arguments
  • binary — Représentation binaire d’un UUID. FixedString(16)
  • variant — Variante telle que définie par la RFC4122. 1 = Big-endian (par défaut), 2 = Microsoft. (U)Int*
Valeur renvoyée Renvoyer l’UUID sous forme de chaîne. String Exemples Exemple d’utilisation
Query
SELECT
    'a/<@];!~p{jTj={)' AS bytes,
    UUIDNumToString(toFixedString(bytes, 16)) AS uuid
Response
┌─bytes────────────┬─uuid─────────────────────────────────┐
│ a/<@];!~p{jTj={) │ 612f3c40-5d3b-217e-707b-6a546a3d7b29 │
└──────────────────┴──────────────────────────────────────┘
Variante Microsoft
Query
SELECT
    '@</a;]~!p{jTj={)' AS bytes,
    UUIDNumToString(toFixedString(bytes, 16), 2) AS uuid
Response
┌─bytes────────────┬─uuid─────────────────────────────────┐
│ @</a;]~!p{jTj={) │ 612f3c40-5d3b-217e-707b-6a546a3d7b29 │
└──────────────────┴──────────────────────────────────────┘

UUIDStringToNum

Introduite dans : v1.1.0 Accepte une chaîne de 36 caractères au format xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx et renvoie un FixedString(16) sous sa représentation binaire, dont le format peut être spécifié via variant (Big-endian par défaut). Syntaxe
UUIDStringToNum(string[, variant = 1])
Arguments
  • string — Une chaîne de caractères ou une chaîne de longueur fixe de 36 caractères) String ou FixedString(36)
  • variant — Variante telle que spécifiée par la RFC4122. 1 = Big-endian (par défaut), 2 = Microsoft. (U)Int*
Valeur renvoyée Renvoie la représentation binaire de string. FixedString(16) Exemples Exemple d’utilisation
Query
SELECT
    '612f3c40-5d3b-217e-707b-6a546a3d7b29' AS uuid,
    UUIDStringToNum(uuid) AS bytes
Response
┌─uuid─────────────────────────────────┬─bytes────────────┐
│ 612f3c40-5d3b-217e-707b-6a546a3d7b29 │ a/<@];!~p{jTj={) │
└──────────────────────────────────────┴──────────────────┘
Variante Microsoft
Query
SELECT
    '612f3c40-5d3b-217e-707b-6a546a3d7b29' AS uuid,
    UUIDStringToNum(uuid, 2) AS bytes
Response
┌─uuid─────────────────────────────────┬─bytes────────────┐
│ 612f3c40-5d3b-217e-707b-6a546a3d7b29 │ @</a;]~!p{jTj={) │
└──────────────────────────────────────┴──────────────────┘

UUIDToNum

Introduit dans : v24.5.0 Accepte un UUID et renvoie sa représentation binaire sous la forme d’un FixedString(16), dont le format peut être spécifié via variant (Big-endian par défaut). Cette fonction remplace les appels combinés aux deux fonctions UUIDStringToNum(toString(uuid)), de sorte qu’aucune conversion intermédiaire de l’UUID en chaîne n’est nécessaire pour extraire les octets d’un UUID. Syntaxe
UUIDToNum(uuid[, variant = 1])
Arguments Valeur renvoyée Renvoie une représentation binaire de l’UUID. FixedString(16) Exemples Exemple d’utilisation
Query
SELECT
    toUUID('612f3c40-5d3b-217e-707b-6a546a3d7b29') AS uuid,
    UUIDToNum(uuid) AS bytes
Response
┌─uuid─────────────────────────────────┬─bytes────────────┐
│ 612f3c40-5d3b-217e-707b-6a546a3d7b29 │ a/<@];!~p{jTj={) │
└──────────────────────────────────────┴──────────────────┘
Variante Microsoft
Query
SELECT
    toUUID('612f3c40-5d3b-217e-707b-6a546a3d7b29') AS uuid,
    UUIDToNum(uuid, 2) AS bytes
Response
┌─uuid─────────────────────────────────┬─bytes────────────┐
│ 612f3c40-5d3b-217e-707b-6a546a3d7b29 │ @</a;]~!p{jTj={) │
└──────────────────────────────────────┴──────────────────┘

UUIDv7ToDateTime

Introduit dans : v24.5.0 Renvoie le composant d’horodatage d’un UUID version 7. Syntaxe
UUIDv7ToDateTime(uuid[, timezone])
Arguments Valeur renvoyée Renvoie un horodatage avec une précision à la milliseconde. Si l’UUID n’est pas un UUID version 7 valide, renvoie 1970-01-01 00:00:00.000. DateTime64(3) Exemples Exemple d’utilisation
Query
SELECT UUIDv7ToDateTime(toUUID('018f05c9-4ab8-7b86-b64e-c9f03fbd45d1'))
Response
┌─UUIDv7ToDateTime(toUUID('018f05c9-4ab8-7b86-b64e-c9f03fbd45d1'))─┐
│                                          2024-04-22 15:30:29.048 │
└──────────────────────────────────────────────────────────────────┘
Avec fuseau horaire
Query
SELECT UUIDv7ToDateTime(toUUID('018f05c9-4ab8-7b86-b64e-c9f03fbd45d1'), 'America/New_York')
Response
┌─UUIDv7ToDateTime(toUUID('018f05c9-4ab8-7b86-b64e-c9f03fbd45d1'), 'America/New_York')─┐
│                                                             2024-04-22 11:30:29.048 │
└─────────────────────────────────────────────────────────────────────────────────────┘

dateTime64ToSnowflake

Introduit dans : v21.10.0
Cette fonction est dépréciée et ne peut être utilisée que si le paramètre allow_deprecated_snowflake_conversion_functions est activé. Elle sera supprimée ultérieurement.Veuillez utiliser la fonction dateTime64ToSnowflakeID à la place.
Convertit un DateTime64 en premier Snowflake ID correspondant à l’instant indiqué. Syntaxe
dateTime64ToSnowflake(value)
Arguments Valeur renvoyée Renvoie la valeur d’entrée convertie en premier Snowflake ID correspondant à cet instant. Int64 Exemples Exemple d’utilisation
Query
WITH toDateTime64('2021-08-15 18:57:56.492', 3, 'Asia/Shanghai') AS dt64 SELECT dateTime64ToSnowflake(dt64);
Response
┌─dateTime64ToSnowflake(dt64)─┐
│         1426860704886947840 │
└─────────────────────────────┘

dateTime64ToSnowflakeID

Introduit dans : v24.6.0 Convertit une valeur DateTime64 en Snowflake ID initial à l’instant donné. Syntaxe
dateTime64ToSnowflakeID(value[, epoch])
Arguments
  • value — Date et heure. DateTime64
  • epoch — Epoch du Snowflake ID, en millisecondes depuis 1970-01-01. La valeur par défaut est 0 (1970-01-01). Pour l’epoch Twitter/X (2015-01-01), utilisez 1288834974657. UInt*
Valeur renvoyée Valeur d’entrée convertie en UInt64 Exemples simple
Query
SELECT dateTime64ToSnowflakeID(toDateTime64('2021-08-15 18:57:56', 3, 'Asia/Shanghai'))
Response
6832626394434895872

dateTimeToSnowflake

Introduit dans : v21.10.0
Cette fonction est dépréciée et ne peut être utilisée que si le paramètre allow_deprecated_snowflake_conversion_functions est activé. Cette fonction sera supprimée ultérieurement.Veuillez utiliser la fonction dateTimeToSnowflakeID à la place.
Convertit une valeur DateTime en premier Snowflake ID à l’instant donné. Syntaxe
dateTimeToSnowflake(value)
Arguments Valeur renvoyée Renvoie la valeur d’entrée sous forme du premier Snowflake ID à cet instant. Int64 Exemples Exemple d’utilisation
Query
WITH toDateTime('2021-08-15 18:57:56', 'Asia/Shanghai') AS dt SELECT dateTimeToSnowflake(dt);
Response
┌─dateTimeToSnowflake(dt)─┐
│     1426860702823350272 │
└─────────────────────────┘

dateTimeToSnowflakeID

Introduit dans : v24.6.0 Convertit une valeur DateTime en premier Snowflake ID pour l’instant donné. Syntaxe
dateTimeToSnowflakeID(value[, epoch])
Arguments
  • value — Date avec heure. DateTime
  • epoch — Époque du Snowflake ID, en millisecondes depuis 1970-01-01. La valeur par défaut est 0 (1970-01-01). Pour l’époque Twitter/X (2015-01-01), indiquez 1288834974657. UInt*
Valeur renvoyée Valeur d’entrée convertie en UInt64 Exemples simple
Query
SELECT dateTimeToSnowflakeID(toDateTime('2021-08-15 18:57:56', 'Asia/Shanghai'))
Response
6832626392367104000

dateTimeToUUIDv7

Introduit dans : v25.8.0 Convertit une valeur DateTime en UUIDv7 pour l’instant donné. Voir la section “génération d’UUIDv7” pour plus de détails sur la structure des UUID, la gestion du compteur et les garanties de concurrence.
En septembre 2025, les UUID version 7 sont encore à l’état de brouillon et leur structure pourrait évoluer à l’avenir.
Syntaxe
dateTimeToUUIDv7(value)
Arguments Valeur renvoyée Renvoie un UUIDv7. UUID Exemples Exemple d’utilisation
Query
SELECT dateTimeToUUIDv7(toDateTime('2021-08-15 18:57:56', 'Asia/Shanghai'));
Response
┌─dateTimeToUUIDv7(toDateTime('2021-08-15 18:57:56', 'Asia/Shanghai'))─┐
│ 018f05af-f4a8-778f-beee-1bedbc95c93b                                   │
└─────────────────────────────────────────────────────────────────────────┘
plusieurs UUID pour un même horodatage
Query
SELECT dateTimeToUUIDv7(toDateTime('2021-08-15 18:57:56'));
SELECT dateTimeToUUIDv7(toDateTime('2021-08-15 18:57:56'));
Response
┌─dateTimeToUUIDv7(t⋯08-15 18:57:56'))─┐
│ 017b4b2d-7720-76ed-ae44-bbcc23a8c550 │
└──────────────────────────────────────┘
┌─dateTimeToUUIDv7(t⋯08-15 18:57:56'))─┐
│ 017b4b2d-7720-76ed-ae44-bbcf71ed0fd3 │
└──────────────────────────────────────┘

generateSnowflakeID

Introduit dans : v24.6.0 Génère un Snowflake ID. La fonction generateSnowflakeID garantit que le champ compteur d’un horodatage s’incrémente de manière monotone sur l’ensemble des invocations de la fonction dans des threads et des requêtes exécutés de manière concurrente. Voir la section “Génération de Snowflake ID” pour plus de détails sur l’implémentation. Syntaxe
generateSnowflakeID([expr, [machine_id]])
Arguments
  • expr — Une expression arbitraire utilisée pour contourner l’élimination des sous-expressions communes si la fonction est appelée plusieurs fois dans une requête. La valeur de l’expression n’a aucun effet sur le Snowflake ID renvoyé. Facultatif. - machine_id — Un ID de machine ; les 10 bits de poids faible sont utilisés. Int64. Facultatif.
Valeur renvoyée Renvoie le Snowflake ID. UInt64 Exemples Exemple d’utilisation
Query
CREATE TABLE tab (id UInt64)
ENGINE = MergeTree()
ORDER BY tuple();

INSERT INTO tab SELECT generateSnowflakeID();

SELECT * FROM tab;
Response
┌──────────────────id─┐
│ 7199081390080409600 │
└─────────────────────┘
Plusieurs Snowflake ID générés par ligne
Query
SELECT generateSnowflakeID(1), generateSnowflakeID(2);
Response
┌─generateSnowflakeID(1)─┬─generateSnowflakeID(2)─┐
│    7199081609652224000 │    7199081609652224001 │
└────────────────────────┴────────────────────────┘
Avec une expression et un ID de machine
Query
SELECT generateSnowflakeID('expr', 1);
Response
┌─generateSnowflakeID('expr', 1)─┐
│            7201148511606784002 │
└────────────────────────────────┘

generateUUIDv4

Introduite dans : v1.1.0 Génère un UUID de version 4. Syntaxe
generateUUIDv4([expr])
Arguments
  • expr — Facultatif. Expression arbitraire utilisée pour contourner l’élimination des sous-expressions communes si la fonction est appelée plusieurs fois dans une requête. La valeur de l’expression n’a aucun effet sur l’UUID renvoyé.
Valeur renvoyée Renvoie un UUIDv4. UUID Exemples Exemple d’utilisation
Query
SELECT generateUUIDv4(number) FROM numbers(3);
Response
┌─generateUUIDv4(number)───────────────┐
│ fcf19b77-a610-42c5-b3f5-a13c122f65b6 │
│ 07700d36-cb6b-4189-af1d-0972f23dc3bc │
│ 68838947-1583-48b0-b9b7-cf8268dd343d │
└──────────────────────────────────────┘
Élimination des sous-expressions communes
Query
SELECT generateUUIDv4(1), generateUUIDv4(1);
Response
┌─generateUUIDv4(1)────────────────────┬─generateUUIDv4(2)────────────────────┐
│ 2d49dc6e-ddce-4cd0-afb8-790956df54c1 │ 2d49dc6e-ddce-4cd0-afb8-790956df54c1 │
└──────────────────────────────────────┴──────────────────────────────────────┘

generateUUIDv7

Introduit dans : v24.5.0 Génère un UUID de version 7. Voir la section “Génération d’UUIDv7” pour plus de détails sur la structure des UUID, la gestion du compteur et les garanties en cas de génération concurrente.
En septembre 2025, les UUID de version 7 sont encore à l’état de projet, et leur structure pourrait évoluer à l’avenir.
Syntaxe
generateUUIDv7([expr])
Arguments
  • expr — Facultatif. Expression arbitraire utilisée pour contourner l’élimination des sous-expressions communes si la fonction est appelée plusieurs fois dans une requête. La valeur de l’expression n’a aucun effet sur l’UUID renvoyé. Any
Valeur renvoyée Renvoie un UUIDv7. UUID Exemples Exemple d’utilisation
Query
SELECT generateUUIDv7(number) FROM numbers(3);
Response
┌─generateUUIDv7(number)───────────────┐
│ 019947fb-5766-7ed0-b021-d906f8f7cebb │
│ 019947fb-5766-7ed0-b021-d9072d0d1e07 │
│ 019947fb-5766-7ed0-b021-d908dca2cf63 │
└──────────────────────────────────────┘
Élimination de sous-expressions communes
Query
SELECT generateUUIDv7(1), generateUUIDv7(1);
Response
┌─generateUUIDv7(1)────────────────────┬─generateUUIDv7(1)────────────────────┐
│ 019947ff-0f87-7d88-ace0-8b5b3a66e0c1 │ 019947ff-0f87-7d88-ace0-8b5b3a66e0c1 │
└──────────────────────────────────────┴──────────────────────────────────────┘

snowflakeIDToDateTime

Introduite dans : v24.6.0 Renvoie le composant d’horodatage d’un Snowflake ID sous la forme d’une valeur de type DateTime. Syntaxe
snowflakeIDToDateTime(value[, epoch[, time_zone]])
Arguments
  • value — Snowflake ID. UInt64
  • epoch — Facultatif. Époque du Snowflake ID, en millisecondes depuis 1970-01-01. La valeur par défaut est 0 (1970-01-01). Pour l’époque de Twitter/X (2015-01-01), indiquez 1288834974657. UInt*
  • time_zone — Facultatif. Fuseau horaire. La fonction interprète time_string selon le fuseau horaire. String
Valeur renvoyée Renvoie le composant d’horodatage de value. DateTime Exemples Exemple d’utilisation
Query
SELECT snowflakeIDToDateTime(7204436857747984384) AS res
Response
┌─────────────────res─┐
│ 2024-06-06 10:59:58 │
└─────────────────────┘

snowflakeIDToDateTime64

Introduit dans : v24.6.0 Renvoie le composant d’horodatage d’un Snowflake ID sous forme d’une valeur de type DateTime64. Syntaxe
snowflakeIDToDateTime64(value[, epoch[, time_zone]])
Arguments
  • value — Snowflake ID. UInt64
  • epoch — Facultatif. Époque du Snowflake ID en millisecondes depuis le 1970-01-01. La valeur par défaut est 0 (1970-01-01). Pour l’époque Twitter/X (2015-01-01), indiquez 1288834974657. UInt*
  • time_zone — Facultatif. Fuseau horaire. La fonction interprète time_string selon le fuseau horaire. String
Valeur renvoyée Renvoie le composant d’horodatage de value sous la forme d’un DateTime64 avec scale = 3, c’est-à-dire une précision à la milliseconde. DateTime64 Exemples Exemple d’utilisation
Query
SELECT snowflakeIDToDateTime64(7204436857747984384) AS res
Response
┌─────────────────res─┐
│ 2024-06-06 10:59:58 │
└─────────────────────┘

snowflakeToDateTime

Introduit dans : v21.10.0
Cette fonction est obsolète et ne peut être utilisée que si le paramètre allow_deprecated_snowflake_conversion_functions est activé. Cette fonction sera supprimée dans une future version.Veuillez utiliser la fonction snowflakeIDToDateTime à la place.
Extrait le composant d’horodatage d’un Snowflake ID au format DateTime. Syntaxe
snowflakeToDateTime(value[, time_zone])
Arguments
  • value — Snowflake ID. Int64
  • time_zone — Facultatif. Fuseau horaire. La fonction interprète time_string en fonction du fuseau horaire. String
Valeur renvoyée Renvoie le composant d’horodatage de value. DateTime Exemples Exemple d’utilisation
Query
SELECT snowflakeToDateTime(CAST('1426860702823350272', 'Int64'), 'UTC');
Response
┌─snowflakeToDateTime(CAST('1426860702823350272', 'Int64'), 'UTC')─┐
│                                              2021-08-15 10:57:56 │
└──────────────────────────────────────────────────────────────────┘

snowflakeToDateTime64

Introduit dans : v21.10.0
Cette fonction est obsolète et ne peut être utilisée que si le paramètre allow_deprecated_snowflake_conversion_functions est activé. Cette fonction sera supprimée à l’avenir.Veuillez utiliser la fonction snowflakeIDToDateTime64 à la place.
Extrait le composant d’horodatage d’un Snowflake ID au format DateTime64. Syntaxe
snowflakeToDateTime64(value[, time_zone])
Arguments
  • value — Snowflake ID. Int64
  • time_zone — Facultatif. Fuseau horaire. La fonction interprète time_string en fonction du fuseau horaire. String
Valeur renvoyée Renvoie le composant d’horodatage de value. DateTime64(3) Exemples Exemple d’utilisation
Query
SELECT snowflakeToDateTime64(CAST('1426860802823350272', 'Int64'), 'UTC');
Response
┌─snowflakeToDateTime64(CAST('1426860802823350272', 'Int64'), 'UTC')─┐
│                                            2021-08-15 10:58:19.841 │
└────────────────────────────────────────────────────────────────────┘

toUUIDOrDefault

Introduit dans : v21.1.0 Convertit une valeur String en UUID. Si la conversion échoue, renvoie une valeur UUID par défaut au lieu de générer une erreur. Cette fonction tente d’analyser une chaîne de 36 caractères au format UUID standard (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx). Si la chaîne ne peut pas être convertie en UUID valide, la fonction renvoie la valeur UUID par défaut fournie. Syntaxe
toUUIDOrDefault(string, default)
Arguments
  • string — Chaîne de 36 caractères ou FixedString(36) à convertir en UUID. - default — valeur UUID à renvoyer si le premier argument ne peut pas être converti en UUID.
Valeur renvoyée Renvoie l’UUID converti si la conversion réussit, ou l’UUID par défaut en cas d’échec. UUID Exemples Une conversion réussie renvoie l’UUID obtenu
Query
SELECT toUUIDOrDefault('61f0c404-5cb3-11e7-907b-a6006ad3dba0', toUUID('59f0c404-5cb3-11e7-907b-a6006ad3dba0'));
Response
┌─toUUIDOrDefault('61f0c404-5cb3-11e7-907b-a6006ad3dba0', toUUID('59f0c404-5cb3-11e7-907b-a6006ad3dba0'))─┐
│ 61f0c404-5cb3-11e7-907b-a6006ad3dba0                                                                     │
└──────────────────────────────────────────────────────────────────────────────────────────────────────────┘
En cas d’échec de conversion, renvoie l’UUID par défaut
Query
SELECT toUUIDOrDefault('-----61f0c404-5cb3-11e7-907b-a6006ad3dba0', toUUID('59f0c404-5cb3-11e7-907b-a6006ad3dba0'));
Response
┌─toUUIDOrDefault('-----61f0c404-5cb3-11e7-907b-a6006ad3dba0', toUUID('59f0c404-5cb3-11e7-907b-a6006ad3dba0'))─┐
│ 59f0c404-5cb3-11e7-907b-a6006ad3dba0                                                                          │
└───────────────────────────────────────────────────────────────────────────────────────────────────────────────┘

toUUIDOrNull

Introduit dans : v20.12.0 Convertit une valeur d’entrée en valeur de type UUID, mais renvoie NULL en cas d’erreur. Comme toUUID, mais renvoie NULL au lieu de lever une exception en cas d’erreur de conversion. Arguments pris en charge :
  • Représentations sous forme de chaîne d’UUID au format standard (8-4-4-4-12 chiffres hexadécimaux).
  • Représentations sous forme de chaîne d’UUID sans traits d’union (32 chiffres hexadécimaux).
Arguments non pris en charge (renvoient NULL) :
  • Formats de chaîne non valides.
  • Types non chaîne.
  • UUID mal formés.
Syntaxe
toUUIDOrNull(x)
Arguments
  • x — Une représentation sous forme de chaîne d’un UUID. String
Valeur renvoyée Renvoie une valeur UUID en cas de réussite, sinon NULL. UUID ou NULL Exemples Exemples d’utilisation
Query
SELECT
    toUUIDOrNull('550e8400-e29b-41d4-a716-446655440000') AS valid_uuid,
    toUUIDOrNull('invalid-uuid') AS invalid_uuid
Response
┌─valid_uuid───────────────────────────┬─invalid_uuid─┐
│ 550e8400-e29b-41d4-a716-446655440000 │         ᴺᵁᴸᴸ │
└──────────────────────────────────────┴──────────────┘
Dernière modification le 25 juin 2026