Bonjour à tous,
je veux faire un trigger qui mette à jour les variables upd_date et upd_user de toutes mes tables. Ces 2 variables permettent de savoir quel est le dernier utilisateur à "avoir fait des conneries" sur les enregistrements . Donc au départ, j'avais fait une fonction du style :
Tout marchait bien dans le meilleur des mondes. Cependant, j'ai du changer le nom de ces 2 variables et elles sont toutes nommées sous cette forme premièrelettretable_upd_date et premièrelettretable_upd_user donc pour mon trigger je dois essayer de retrouver le nom de mes champs en dynamique.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 BEGIN NEW.upd_date = current_timestamp; NEW.upd_user = session_user; RETURN NEW; END;
J'ai donc tenté ce code :
Seulement le problème est qu'il n'a pas l'air d'accepter mes variables updatedate et updateuser. Ce que je concois mais existe-t-il une solution ??
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 BEGIN SELECT INTO updatedate attname FROM pg_attribute, pg_class WHERE pg_class.relname=TG_RELNAME AND pg_class.relfilenode = pg_attribute.attrelid AND attname like '%_upd_date' ORDER BY 1; NEW.updatedate = current_timestamp; SELECT INTO updateuser attname FROM pg_attribute, pg_class WHERE pg_class.relname=TG_RELNAME AND pg_class.relfilenode = pg_attribute.attrelid AND attname like '%_upd_usr' ORDER BY 1; NEW.updateuser = session_user; RETURN NEW; END;
J'espère que j'ai été assez explicite. Merci d'avance.
Partager