Bonjour,
J'ai un petit souci avec PostgreSQL (8.3.6) sur une machine xp (64 bits, également testé sur une 32 et ça ne marche pas non plus).
J'ai un trigger qui va mettre à jour un champ dans sa table, mais le champ est toujours null...

Voici ma table et son trigger
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
26
27
28
29
30
31
32
33
34
35
36
37
38
 
CREATE TABLE test
(
  id character varying(32) NOT NULL,
  "text" character varying(100),
  test character varying(32),
  CONSTRAINT pk_test PRIMARY KEY (id)
)
WITH (OIDS=FALSE);
ALTER TABLE test OWNER TO dfdev;
 
CREATE TRIGGER test_trg
  AFTER INSERT OR UPDATE OR DELETE
  ON test
  FOR EACH ROW
  EXECUTE PROCEDURE test_trg();
 
CREATE OR REPLACE FUNCTION test_trg()
  RETURNS trigger AS
$BODY$ DECLARE 
 
 
BEGIN
 
    IF TG_OP = 'INSERT' THEN
      new.test := 'INSERT';
    END IF;
    IF TG_OP = 'UPDATE' THEN
      new.test := 'UPDATE';
    END IF;
 
IF TG_OP = 'DELETE' THEN RETURN OLD; ELSE RETURN NEW; END IF; 
 
END;
$BODY$
  LANGUAGE 'plpgsql' VOLATILE
  COST 100;
ALTER FUNCTION test_trg() OWNER TO dfdev;
Je ne comprends pas, j'ai fait ça plusieurs fois avec Oracle et ça marche bien, y a t'il un truc pour que cela fonctionne sour PostgreSQL?

Merci d'avance!
Bonne journée
Neil.