Aloha,
J'essaie de ne créer qu'une seule fonction trigger pour l'ensemble de ma base de données pour la mise à jour des dates de création/modif de mes objets. En effet, ils ont tous les mêmes noms de colonne pour les dates modif/création.
Mais a priori, mon code est inopérant.
J'avoue y perdre mon latin.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 CREATE OR REPLACE FUNCTION test_trigger.datec_datem_func() RETURNS trigger LANGUAGE 'plpgsql' COST 100 VOLATILE NOT LEAKPROOF AS $BODY$ DECLARE BEGIN IF TG_OP = 'INSERT' and NEW.date_c is null THEN NEW.date_c := (select current_date); END IF; IF TG_OP = 'UPDATE' and (NEW.date_m is null or NEW.date_m < (select current_date)) THEN NEW.date_m := (select current_date); END IF; return NEW; END; $BODY$; CREATE TRIGGER test_trigger AFTER INSERT OR UPDATE ON test_trigger.test_pct FOR EACH ROW EXECUTE PROCEDURE test_trigger.datec_datem_func();
J'ai cherché un peu sur le forum, j'ai regardé du côté de TG_TABLE_NAME, j'ai aussi essayé en intégrant des requêtes update dans le code de la fonction trigger (mais celà allait avoir des effets certains puisque j'appelle cette fonction lors d'update).
Rien n'y fait
D'avance, merci![]()








Répondre avec citation






Partager