Message posté par : La_methode
----------------------------------------
Bonjour à tous,
je suis un peu débutant en sql (postgreSQL), j'ai besoin d'automatiser la mise à
jour de certains champs de table d'une bases de données.
La particularité de ces tables est qu'elle se retrouve sous différents schémas.
Le code que j'ai écrit s'exécute parfaitement mais lorsqu'une action est faite
sur une des tables, les champs sensés être mises à jour automatiquement restent toujours
nul.
Ci dessous mon code
CREATE OR REPLACE FUNCTION downhole_position()
RETURNS TRIGGER
language 'plpgsql'
AS $$
BEGIN
--la table existe dans différents schéma de la base de données--
--lorsqu'une insertion ou mise à jour est effectuée sur une table--
IF (TG_TABLE_NAME='INSERT' OR TG_TABLE_NAME='UPDATE')
--exécuter une requête de mise à jour sur des champs spécifiques--
--jointure interne à réaliser--
THEN
UPDATE TG_TABLE_NAME
SET
New."X_from"="mEasting"+(New."mFrom"*cos(radians("Dip"))*sin(radians(180-"Azimuth"))),
New."Y_from"="mNorthing"-(New."mFrom"*cos(radians("Dip"))*sin(radians("Azimuth"-90))),
New."X_to"="mEasting"+(New."mTo"*cos(radians("Dip"))*sin(radians(180-"Azimuth"))),
New."Y_to"="mNorthing"-(New."mTo"*cos(radians("Dip"))*sin(radians("Azimuth"-90)))
FROM TG_TABLE_NAME as d
INNER JOIN TG_TABLE_SCHEMA."DHCollar" as b
ON d."HoleID"=b."HoleID";
END IF;
RETURN NEW;
END
$$;
CREATE TRIGGER Downhole_Data_position
AFTER INSERT OR UPDATE
ON "Daloa"."TestDHLitho"
FOR EACH ROW
EXECUTE PROCEDURE downhole_position();
Merci de m'aider.
----------------------------------------
Le message est situé
https://georezo.net/forum/viewtopic.php?pid=354923#p354923
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