Message posté par : Demonshine (laurie.gourlet(a)gmail.com)
----------------------------------------
Bonjour,
Je rencontre un problème sur la mise en place d'un trigger entre deux tables d'une
base de données postgresql.
Je dispose de deux tables :
Table 1 : Toponymie_activites (champs : geom, fid, id, classe, nature, graphie, source,
statut_top, date_top) de type PONCTUEL et Table 2 de type POLYGONE : ZAI (geom, id, fid,
nature, nat_detail, toponyme, statut_top, importance...)
Le but est de récupérer les mises à jour ou insertions qui seraient faites sur le champ
"toponyme" de la table 2 si celui-ci n'est pas null et de récupérer
également les champs de cette même table : id, nature et geom associés au toponyme. Il
s'agit de champs communs dont j'aimerais garder l'information et qui me
permettraient de faire le lien entre ces deux tables : nature, id, graphie (=toponyme dans
ZAI) et geom (faire le calcul st_centroid(geom) pour obtenir un ponctuel) dans ZAI
Ces modifications devront se répercuter de manière automatisée dans la table 1 et donc
dans la base de données par l'ajout d'une nouvelle ligne par toponyme dans la
table.
Étant débutant sur la mise en place de triggers, je n'ai abouti à aucun résultat. Je
vous partage tout de même une de mes tentatives de création de triggers.
-----------------
Code :
DELIMITER $$
CREATE TRIGGER maj_zai
AFTER INSERT OR UPDATE ON ZAI
FOR EACH ROW
BEGIN
NEW.id:= (SELECT id FROM toponymie_activites WHERE id = NEW.id);
RETURN NEW;
NEW.nature:= (SELECT nature FROM toponymie_activites WHERE nature = NEW.nature);
RETURN NEW;
NEW.graphie:= (SELECT graphie FROM toponymie_activites WHERE graphie = NEW.toponyme);
RETURN NEW;
NEW.geom:= (SELECT geom FROM toponymie_activites WHERE geom = NEW.st_centroid(geom);
RETURN NEW;
end;
DELIMITER;
-----------------
Merci d'avance pour votre aide !!
----------------------------------------
Le message est situé
https://georezo.net/forum/viewtopic.php?pid=343565#p343565
Pour y répondre : geomatique(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net