1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| 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(); |
Partager