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 Mon 07 June 2021 07:27

sig_bam
Juste Inscrit !
Date d'inscription: 6 Jun 2021
Messages: 3

triggers calcul superficie

Bonjour
Je dispose d'un fichier shape polygone avec des entités déjà créées et j'aimerais calculer la superficie de ces entités avec une fonction triggers, mon code ci dessous ne fonction pas:

create or replace function calcul_superficie () returns trigger as $calcul_superficie$
     begin
         new.superficie := (ST_area(new.geom)*0.000001);
         return new;
     end;
$calcul_superficie$ language plpgsql;

create trigger calcul_superficie before insert or update
on geobase_admci.production.region_ci for each row
execute procedure calcul_superficie();

NB: j'aimerais signaler , que mes entités sont déjà créées, il n'y a pas de nouvelles création, juste mettre à jour le champs superficie que je viens de créer avec la fonction  trigger.

Je suis bloqué depuis quelques jours et mes recherches ne donnent presque rien.
En attendant votre retour... Cordialement

Hors ligne

 

#2 Mon 07 June 2021 09:23

Tan85
Participant occasionnel
Date d'inscription: 20 Sep 2019
Messages: 23

Re: triggers calcul superficie

Bonjour,
comme le dit votre 'create trigger', le calcul de la surface n'interviendra qu'en cas de nouvelle création ou de mise à jour.
A votre place je ferai plutôt un UPDATE de la table :

Code:

UPDATE geobase_admci.production.region_ci as a
set superficie=st_area(a.geom)

Hors ligne

 

#3 Mon 07 June 2021 13:12

sig_bam
Juste Inscrit !
Date d'inscription: 6 Jun 2021
Messages: 3

Re: triggers calcul superficie

Tan85 a écrit:

Bonjour,
comme le dit votre 'create trigger', le calcul de la surface n'interviendra qu'en cas de nouvelle création ou de mise à jour.
A votre place je ferai plutôt un UPDATE de la table :

Code:

UPDATE geobase_admci.production.region_ci as a
set superficie=st_area(a.geom)


Bonjour,
merci pour votre retour, mais je ne sais pas à quel niveau de mon code il faut insérer vos suggestions, pouvez me donner plus d'informations à ce sujet.
merci

Hors ligne

 

Pied de page des forums

Powered by FluxBB