bonjour à tous

dans chacune de mes tables j'ai un champ nommé <table_name>_uuid et à l'insertion d'une ligne j'aimerais renseigner une valeur pour ce champ

comme DEFAULT ne fonctionne pas avec des fonctions j'essaie de coder un trigger dont voici le code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
CREATE OR REPLACE FUNCTION uuid_generator()
RETURNS TRIGGER
LANGUAGE plpgsql
AS $$
DECLARE
  uuidField VARCHAR;
BEGIN
  uuidField := TG_TABLE_NAME || '_uuid';
 
  EXECUTE '($1).' || QUOTE_IDENT(uuidField) || ' := uuid_generate_v4()' USING NEW;
 
  RETURN NEW;
END;
$$;
uuidField contient bien le nom du champ dans lequel je veux stocker la valeur mais ma commande EXECUTE ne fonctionne pas, visiblement à cause d'un problème de syntaxe

pourriez-vous m'indiquer comment corriger le problème ?

merci