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