Tous les produits
Search
Centre de documentation

Hologres:GEN_RANDOM_UUID

Dernière mise à jour :Aug 11, 2026

La fonction GEN_RANDOM_UUID génère un identifiant universel unique (UUID) de version 4 composé d'entiers hexadécimaux aléatoires. Utilisez-la pour attribuer des ID uniques aux lignes lors de l'écriture, par exemple en tant que valeur DEFAULT sur une colonne de clé primaire, sans gérer manuellement les séquences d'ID.

Prérequis

Avant de commencer, vérifiez que vous disposez des éléments suivants :

  • Une base de données Hologres

  • Les autorisations nécessaires pour exécuter des instructions DDL dans cette base de données

Installation de l'extension pgcrypto

La fonction GEN_RANDOM_UUID nécessite l'extension pgcrypto. Installez-la une fois par base de données avant d'appeler la fonction.

-- Install the extension.
CREATE EXTENSION pgcrypto;

-- Remove the extension if no longer needed.
DROP EXTENSION pgcrypto;
L'extension est limitée à la base de données. Si vous créez une nouvelle base de données, exécutez également CREATE EXTENSION pgcrypto dans celle-ci.

Syntaxe

GEN_RANDOM_UUID() → uuid

Renvoie une valeur uuid. Par exemple : 3a5401f1-0f0c-4380-8611-78e654efd86d

Un UUID a une longueur fixe de 128 bits. Sa valeur varie de 00000000-0000-0000-0000-000000000000 à ffffffff-ffff-ffff-ffff-ffffffffffff. Pour plus d'informations sur le type de données UUID, consultez la section Types de données.

Exemples

Générer un UUID à la demande

SELECT GEN_RANDOM_UUID();

Résultat :

gen_random_uuid
------------------------------------
3a5401f1-0f0c-4380-8611-78e654efd86d

Remplir automatiquement une colonne UUID lors de l'insertion

Appelez gen_random_uuid() dans une instruction INSERT ... SELECT pour attribuer un ID unique à chaque ligne provenant d'une table source.

-- Create a source table and populate it with sample data.
CREATE TABLE t_source (a INT);
INSERT INTO t_source SELECT * FROM generate_series(1, 5);

-- Create a destination table with a UUID column.
CREATE TABLE t_result (a INT, b UUID);

-- Insert rows and generate a UUID for each one.
INSERT INTO t_result SELECT *, gen_random_uuid() FROM t_source;

-- Verify the results.
SELECT * FROM t_result;

Résultat :

 a |                  b
---+--------------------------------------
 1 | 27477537-abc4-4c17-9cf3-91c856a3b298
 2 | 2522b1ce-fdf3-4b14-a3c3-78f4baac5186
 3 | c69959a3-ad40-424f-9eb1-3271d0c6a8d4
 4 | 5493e087-b1b8-47e2-8117-adea27aaa676
 5 | f0e55a29-e72e-42e6-99aa-486db4f8b624
(5 rows)