Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Printemps des cartes 2024

#1 Thu 14 November 2019 09:16

Floflo49fb
Participant assidu
Lieu: Montpellier
Date d'inscription: 29 Aug 2009
Messages: 250
Site web

Trigger - Mise à jour de label

Bonjour à tous,
Mon problème est le suivant, j'ai une couche de points avec un champ "points.name" qui doit récupérer le "polygons.name" des polygones sous jacents.
J'arrive bien à faire un update sur la couche mais j'aimerai utiliser un trigger pour remplir le "points.name" lorsque l'utilisateur ajoute ou modifie un points :

Toutes mes tentatives de TRIGGER ont échoué mais j'aimerai mettre à jour ma table :

Code:

CREATE OR REPLACE FUNCTION "avsf_up".trigger_up_name() RETURNS TRIGGER AS $$
BEGIN

NEW.name  :=  concat(string_agg(s.name, '; ')) FROM points p
INNER JOIN polygons s ON ST_Within(p.geom, s.geom)
WHERE p.id=OLD.id GROUP BY p.id;
RETURN NEW;

END
$$ LANGUAGE plpgsql;

Vous remerciant par avance,


Florian Boret
Dream it, Make it, Share it

Hors ligne

 

#2 Thu 14 November 2019 09:39

Floflo49fb
Participant assidu
Lieu: Montpellier
Date d'inscription: 29 Aug 2009
Messages: 250
Site web

Re: Trigger - Mise à jour de label

Je pose ma solution ici  :

Code:

CREATE OR REPLACE FUNCTION "avsf_up".trigger_up_name() RETURNS TRIGGER AS $$
BEGIN
    NEW.name :=  concat(string_agg(s.name, '; '))
    FROM polygons s
    WHERE NEW.id=NEW.id AND ST_Within(NEW.geom, s.geom)
    GROUP BY NEW.id;
    RETURN NEW;

END
$$ LANGUAGE plpgsql;

Dernière modification par Floflo49fb (Thu 14 November 2019 09:40)


Florian Boret
Dream it, Make it, Share it

Hors ligne

 

Pied de page des forums

Powered by FluxBB