Bonjour,
je viens de faire une procédure ainsi qu'un trigger:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
CREATE TRIGGER init_n
  BEFORE INSERT OR UPDATE
  ON matable
  FOR EACH ROW
  EXECUTE PROCEDURE init_null();
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
 
CREATE OR REPLACE FUNCTION init_null()
  RETURNS "trigger" AS
$BODY$
BEGIN
	IF (TG_OP = 'UPDATE') THEN
		UPDATE matable SET prsadr=NULLIF(NEW.c1,'0'), prsfax=NULLIF(NEW.c2,'0'), prspor=NULLIF(NEW.c3,'0'), prstel=NULLIF(NEW.c4,'0'), prsfon=NULLIF(NEW.c5,'0');
	ELSIF (TG_OP = 'INSERT') THEN
		INSERT INTO matable VALUES (NEW.c1,NEW.c2,NEW.c3,NEW.c4,NEW.c5,NEW.c6);
	RETURN NEW;
	END IF;
 
END
$BODY$
  LANGUAGE 'plpgsql' VOLATILE;
ALTER FUNCTION init_null() OWNER TO postgres;
dès que 'ajoute un enregistrement, je récupère l'erreur
ERROR: stack depth limit exceeded;
Error while executing the query
et donc ça plante sans enregistrer le moindre élément dans ma table. quelqu'un pourrait m'aider?

Merci.