Trigger date creation / date modification
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.
Code:
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'avoue y perdre mon latin.
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 :)