#1 Wed 31 July 2013 15:48
- Sylvain Dambier
- Juste Inscrit !
- Lieu: Niort
- Date d'inscription: 13 Sep 2007
- Messages: 3
Problème Trigger sous PostGIS
Bonjour,
Je suis en train de créer une application de gestion des poteaux d'incendie sous "Aigle Générateur".
J'aimerai, après l'ajout ou la modification d'un poteau, remplir un champ 'wgs84' directement avec les coordonnées concaténées de la manière suivante : wgs84 = y,+x
j'ai créé le trigger suivant :
CREATE OR REPLACE FUNCTION maj_coord()
RETURNS trigger AS $$
BEGIN
IF (NEW.geom IS not null) then
NEW.wgs84 := y(centroid(st_transform("hydrants"."aep_pi"."geom",4326)))||',+'||x(centroid(st_transform("hydrants"."aep_pi"."geom",4326)));
END IF;
RETURN NEW;
END;
$$ LANGUAGE plpgsql;
CREATE TRIGGER tg_hyd_maj_coord
AFTER INSERT OR UPDATE
ON hydrants.aep_pi
FOR EACH ROW
EXECUTE PROCEDURE maj_coord();
Le trigger ne me renvoie aucune erreur dans PostGIS mais l'ajout d'un poteau me renvoie une erreur via Aigle : "Attention, une erreur s'est produite lors de la mise à jour"
Je n'arrive pas à voir d'ou peut provenir l'erreur.
Quelqu'un pourrait m'aider sur ce sujet ?
D'avance merci
Hors ligne
#2 Wed 31 July 2013 17:35
- Nicolas Ribot
- Membre
- Lieu: Toulouse
- Date d'inscription: 9 Sep 2005
- Messages: 1554
Re: Problème Trigger sous PostGIS
Bonjour,
Le trigger doit etre défini BEFORE INSERT OR UPDATE.
La mise à jour d'une colonne n'est possible qu'avant l'opération d'insert ou d'update. Un AFTER trigger ne peut plus modifier la ligne ou la table concernée.
Nicolas
Hors ligne
#3 Wed 31 July 2013 18:46
- Sylvain Dambier
- Juste Inscrit !
- Lieu: Niort
- Date d'inscription: 13 Sep 2007
- Messages: 3
Re: Problème Trigger sous PostGIS
Bonjour Nicolas,
J'avais fait le même trigger avec un BEFORE, j'avais la même erreur.
C'est pourquoi j'ai essayé avec un AFTER...
Sylvain
Hors ligne
#4 Thu 01 August 2013 13:12
- Jcros
- Juste Inscrit !
- Date d'inscription: 11 Dec 2009
- Messages: 5
Re: Problème Trigger sous PostGIS
Ce qui pourrais aider dans la résolution du problème, se serait de faire un insert "à la main" et non pas au travers de votre outil.
Ainsi vous pourriez nous communiquez le message d'erreur SQL (là il a l'air d'ètre "caché" par votre application)
Hors ligne
#5 Thu 01 August 2013 13:41
- VianneyD
- Participant assidu
- Date d'inscription: 30 May 2011
- Messages: 153
Re: Problème Trigger sous PostGIS
Bonjour,
Est-tu sûr que les fonctions Centroid(), X() et Y() soient interprétées ?
Peut-être faut il leur rajouter le préfixe ST_
Vianney Dugrain
Hors ligne