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

Suite à un problème technique intervenu entre le 22 et le 23 mars, nous avons du procéder dans la soirée du 25 mars, à la restauration de la base de données du 24 mars (matinée).

En clair, nous avons perdu vos contributions et inscriptions du dimanche 24 et du lundi 25 mars.
Nous vous prions de nous excuser.

#1 Thu 14 November 2019 09:16

Floflo49fb
Participant assidu
Lieu: Montpellier
Date d'inscription: 29 Aug 2009
Messages: 249
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: 249
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