Annonce
Pour sa 21ème année, l’association GeoRezo a toujours besoin de vous !
10€ = 1 mois de frais bancaires ; 15€ = 12 mois de nom de domaine ; 30€ = 1 semaine de location des serveurs …
Retrouver nos membres bienfaiteurs
#1 Thu 01 June 2023 10:52
- Nyldan
- Juste Inscrit !
- Date d'inscription: 20 Mar 2023
- Messages: 8
déclenchement trigger a l'ajout d'une colonne
Bonjour,
je souhaiterais savoir si il est possible (mais j'ai un gros doute...) pour un trigger de ne pas se déclencher à l'ajout ou à la suppression d'une colonne.
J'ai un fonction qui modifie la colonne date_maj avec celle du jour actuel et un trigger qui le déclenche avant un insert ou un update. Mon souci est que quand une colonne est ajoutée à ma table le trigger met à jour toutes les lignes de la base (ce qui est normal). Il y a t-il un moyen de contourner celà?
Mes deux code:
Code:
FUNCTION: schema.nom_fonction() -- DROP FUNCTION IF EXISTS schema.nom_fonction(); CREATE OR REPLACE FUNCTION schema.nom_fonction() RETURNS trigger LANGUAGE 'plpgsql' COST 100 VOLATILE NOT LEAKPROOF AS $BODY$ BEGIN new.date_maj := NOW(); RETURN NEW; END $BODY$; ALTER FUNCTION schema.nom_fonction() OWNER TO PUBLIC; GRANT EXECUTE ON FUNCTION schema.nom_fonction() TO PUBLIC; ------------------------------------------------------------------------------- -- Trigger: nom_trigger -- DROP TRIGGER IF EXISTS nom_trigger ON schema.nom_table_ou_appliquer_trigger; CREATE TRIGGER nom_trigger BEFORE INSERT OR UPDATE ON schema.nom_table_ou_appliquer_trigger FOR EACH ROW EXECUTE FUNCTION schema.nom_fonction();
Merci pour vos retours
Hors ligne
#2 Thu 01 June 2023 11:34
- JP LLORENS
- Participant assidu
- Date d'inscription: 12 Nov 2008
- Messages: 231
Re: déclenchement trigger a l'ajout d'une colonne
Bonjour.
Peut être faut-il spécifier les attributs qui vont déclencher le trigger sur l'UPDATE :
Code:
CREATE TRIGGER nom_trigger BEFORE INSERT OR UPDATE OF mageométrie, monattribut1, monattribut2 ... ON schema.nom_table_ou_appliquer_trigger FOR EACH ROW EXECUTE FUNCTION schema.nom_fonction();
Ainsi le trigger ne va se déclencher que sur un INSERT ou sur la modification de la valeur d'un des attributs que l'on trouve après le UPDATE OF et uniquement sur la ligne concernée
JP
Hors ligne
#3 Thu 01 June 2023 14:25
- Nyldan
- Juste Inscrit !
- Date d'inscription: 20 Mar 2023
- Messages: 8
Re: déclenchement trigger a l'ajout d'une colonne
Merci pour votre retour,
Votre solution répond très bien à la problématique, je n'avais pas pensé à çà.
Encore merci,
Hors ligne