Bonjour,
Je souhaiterais créer un trigger pour calculer automatiquement les longueurs de mes polylignes lors des mises à jours.
J'ai utilisé un code mais cela ne fonctionne pas
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 CREATE OR REPLACE FUNCTION champ_longueur() RETURNS trigger AS $BODY$ BEGIN NEW.LENGTH := ST_Length(NEW.geom); RETURN NEW; END; $BODY$ LANGUAGE plpgsql; CREATE TRIGGER maj_champ_longueur BEFORE INSERT OR UPDATE ON lignes FOR EACH ROW EXECUTE PROCEDURE champ_longueur();
Lors de modifications sous QGIS, j'ai un message d'erreur et pas de mise à jour
Je recois ce message d'erreur :
Impossible de valider les changements pour la couche lignes
Erreurs : ERREUR : 1 géométrie non-modifiée.
Erreur du fournisseur de données :
Erreur PostGIS lors de la modification de géométrie : ERREUR: l'enregistrement « new » n'a pas de champs « length »
CONTEXT: fonction PL/pgsql champ_longueur(), ligne 4 à affectation
Partager