Bonjour,

Je débute dans les triggers et dans le langage PL PGSQL et je rencontre quelques soucis :

Lors d'un update sur une table je souhaite simplement enregistrer le timestamp du moment dans un champ nommé "date_last_maj" de cette même table. Voici mon code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
CREATE TRIGGER trig_maj_date
  BEFORE UPDATE
  ON portail.deci_g_tab_pei
  FOR EACH ROW
  EXECUTE PROCEDURE public.maj_date();
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
CREATE OR REPLACE FUNCTION public.maj_date()
  RETURNS trigger AS
$BODY$
BEGIN 
	NEW.date_last_maj=current_timestamp;
 
   RETURN NEW;
  END; 
$BODY$
  LANGUAGE plpgsql VOLATILE
Lors de la modification d'une ligne directement via pgAdmin par exemple, le trigger se déclenche et fonctionne.
Lors d'une modification via un formulaire web qui exécute une requête update sous PHP, le trigger ne se déclenche pas.


Qu'en pensez-vous ? Bug de postgresql, mauvais règlages, mauvais développement du trigger ?

Merci par avance de votre aide,

Gwen