Pages: 1
- Sujet précédent - Postgis / trigger et fonction sommer un nombre de points sur une zone - Sujet suivant
#1 Tue 20 February 2018 18:08
- pgilbert
- Juste Inscrit !
- Lieu: Noisy-le-Grand
- Date d'inscription: 20 Feb 2012
- Messages: 5
Postgis / trigger et fonction sommer un nombre de points sur une zone
Bonjour à tous,
Je débute avec les fonctions et les triggers sur postgresql et postgis. J'ai besoin d'aide. Je voudrais mettre à jour automatiquement un attribut d'une couche polygone à la création d'une nouvelle entité (ou sa modification) avec la somme d'un attribut d'entités ponctuels intersectant cette nouvelle entité.
Pour mon exemple, il s'agit d'électeurs suivant un zonage. j'ai 2 couches:
- electeur(ponctuelle)
- id
- electeurs (nombre_electeurs)
- geom
- zonages
- id
- nb_elec (champs à mettre à jour automatiquement)
- geom
J'ai testé à la création de la fonction suivante
Code:
CREATE OR REPLACE FUNCTION public.nb_elec() RETURNS trigger AS $BODY$ BEGIN NEW.nb_elec = tot_elect as (select sum(electeurs) from public.zonages join public.electeur on st_intersects(electeur.geom, NEW.geom) group by new.geom) RETURN NEW; END; $BODY$ LANGUAGE plpgsql VOLATILE COST 100;
et la création du trigger suivant
Code:
CREATE TRIGGER t_nbelec AFTER INSERT OR UPDATE ON zonages FOR EACH ROW EXECUTE PROCEDURE public.nb_elec();
merci pour votre aide
Hors ligne
#2 Tue 20 February 2018 22:59
- Rémi F
- Juste Inscrit !
- Date d'inscription: 18 Nov 2016
- Messages: 6
Re: Postgis / trigger et fonction sommer un nombre de points sur une zone
Bonjour, essayez directement ceci :
Code:
CREATE OR REPLACE FUNCTION public.nb_elec() RETURNS trigger AS $BODY$ BEGIN NEW.nb_elec := (select sum(a.electeurs) from public.electeur a where st_intersects(new.geom, a.geom)); RETURN NEW; END; $BODY$ LANGUAGE plpgsql VOLATILE COST 100; CREATE TRIGGER t_nbelec BEFORE INSERT OR UPDATE ON public.zonages FOR EACH ROW EXECUTE PROCEDURE public.nb_elec();
Hors ligne
#3 Mon 12 November 2018 15:45
- pgilbert
- Juste Inscrit !
- Lieu: Noisy-le-Grand
- Date d'inscription: 20 Feb 2012
- Messages: 5
Re: Postgis / trigger et fonction sommer un nombre de points sur une zone
merci pour votre réponse
Hors ligne
Pages: 1
- Sujet précédent - Postgis / trigger et fonction sommer un nombre de points sur une zone - Sujet suivant